??xml version="1.0" encoding="utf-8" standalone="yes"?> 攚w有两个斚w的原因: 1.如果业务人员Q只单击?#8220;保险h”Q?#8220;保险止期”没有联动Q以前的默认的保险期?65天没有发生变化,而保单打印出来的旉“保险h”?#8220;保险止期”有变化,易引起麻烦?/p>
2.刚才提到双击可以联动Q还有单d点刷C可以联动Q但是在|络慢的情况下,影响出单员的效率?/p>
攚w如下: Ҏ(gu)件My97DatePicker.htm部分q行修改Q增加一个jsҎ(gu)Q在body里面引用Q?br />
<head> 控gq接地址Q?a target="_blank">http://www.my97.net/dp/demo/index.htm
主要是我把IE8?#8216;脚本’下的“启动调试”l关了,所以最后只出现ie6的调试界面?br />
解决Ҏ(gu)Q打开IE8后,点击"工具"->"开发h员工?,或者快捷键F12Q会打开面调试H口?br />
]]>
1、在JS中,window.showModalDialog传递对象?br />
function tool_uploadFile(clmNo,billType,maxFileNum,fileType,singleLimit,totalLimit) {//解决q的问题,增加变量paramObj?0.06.01
var paramObj = {
"clmNo" : clmNo,
"billType" : billType,
"maxFileNum" : maxFileNum,
"fileType" : fileType,
"singleLimit" : singleLimit,
"totalLimit" : totalLimit
};
var r = window.showModalDialog(global.WEB_APP_NAME+"/core/jsp/common/uploadFile.jsp",paramObj,"dialogHeight:610px;dialogWidth:530px;center:1;help: 0; status: 0;");
return r;
}
在uploadFile.jsp中,通过js获得参数?br />
<script>
var paramObj = window.dialogArguments;
var clmNo = paramObj.clmNo;
var billType = paramObj.billType;
var maxFileNum = paramObj.maxFileNum;
var fileType = paramObj.fileType;
var singleLimit = paramObj.singleLimit;
var totalLimit = paramObj.totalLimit;
tool.loadApplet('<%=agentIp%>','<%=agentPort%>','<%=orgId%>',clmNo,billType,maxFileNum,fileType,singleLimit,totalLimit);
</script>
2、在JS中,window.showModalDialog通过Q传递参数?
function tool_uploadFile(clmNo,billType,maxFileNum,fileType,singleLimit,totalLimit) {
billType = encodeURIComponent(billType);
var r = window.showModalDialog(global.WEB_APP_NAME+"/core/jsp/common/uploadFile.jsp?clmNo="+clmNo+"&billType="+billType+"&maxFileNum="+maxFileNum+"&fileType="+fileType+"&singleLimit="+singleLimit+"&totalLimit="+totalLimit,"","dialogHeight:610px;dialogWidth:530px;center:1;help: 0; status: 0;");
return r;
}
在uploadFile.jsp中,通过java解析获得参数?br />
String paramStr = request.getQueryString();
if (paramStr == null || paramStr.equals("")) {
return;
}
HashMap<String, ArrayList<String>> parameter = new HashMap<String, ArrayList<String>>();
String[] paramArr = paramStr.split("&+");
String[] arr = null;
for (int i = 0; i < paramArr.length; i++) {
arr = paramArr[i].split("=", 2);
ArrayList<String> lst = parameter.get(arr[0]);
if (lst == null) {
lst = new ArrayList<String>();
parameter.put(arr[0], lst);
}
if (arr.length < 2) {
lst.add("");
} else {
lst.add(URLDecoder.decode(arr[1], "UTF-8"));
}
}
ArrayList<String> paramlst = parameter.get("billType");
String billType = paramlst.get(0);
以上两种Ҏ(gu)Q对应用服务器设|的url~码没有关系?
q有一U方法,是转换成GB2312Q不q此U方法跟服务器编码设|还有关p,有时q会出现qQ?br />
billType = new String(billType.getBytes("ISO-8859-1"),"GB2312");
]]>
下面通过一个Web仿真计算器实例来描述它的q个作用。这是一个基于Web的计器仿真E序。用户可以像操作一个现实世界中的计器一P通过单击按钮输入数据和运符P当输入等号后在文本框中得到最l结果。它的原理很单,是记录用户输入的运式字串Q然后用Eval 函数把该字串转成q算式交lJavascript 执行卛_。先手动建立一个简单的HTML 文gQ只?lt;html>、head>?lt;body>元素卛_。接着?lt;body></body>间插入以下html 代码Q设|好该程序界面?br />
<input type="text" name=textdisp value="" ><br>
<input type="button" name=leftk value="(" onclick="yunsuan(value)">
<input type="button" name=rightk value=")" onclick="yunsuan(value)">
<input type="button" name=op1 value="1" onclick="yunsuan(value)">
<input type="button" name=op2 value="2" onclick="yunsuan(value)">
<input type="button" name=op3 value="3" onclick="yunsuan(value)">
<input type="button" name=op4 value="4" onclick="yunsuan(value)">
<br><p>
<input type="button" name=op5 value="5" onclick="yunsuan(value)">
<input type="button" name=op6 value="6" onclick="yunsuan(value)">
<input type="button" name=op7 value="7" onclick="yunsuan(value)">
<input type="button" name=op8 value="8" onclick="yunsuan(value)">
<input type="button" name=op9 value="9" onclick="yunsuan(value)">
<input type="button" name=op0 value="0" onclick="yunsuan(value)">
<br><p>
<input type="button" name=oppoint value="." onclick="yunsuan(value)">
<input type="button" name=opadd value="+" onclick="yunsuan(value)">
<input type="button" name=opsub value="-" onclick="yunsuan(value)">
<input type="button" name=opmul value="*" onclick="yunsuan(value)">
<input type="button" name=opdiv value="/" onclick="yunsuan(value)">
<input type="button" name=opeql value="=" onclick="yunsuan(value)">
<br><p>
<input type="button" name=cle value="restar" onclick="res()">
现在用IE6 打开它,׃得到如图所C的效果。再接再厉,现在?lt;head></head>中输入以下Javascript
代码Q?br />
<TITLE>test</TITLE>
<script language="javascript">
var expstring="";
var numstring="";
function yunsuan(btn){
if(btn=="=")
textdisp.value=eval(expstring);
else
{if(((btn>="0")&&(btn<="9"))||(btn=="."))
{numstring=numstring+btn;
textdisp.value=numstring;
}
else
numstring="";
expstring=expstring+btn;
}
}
function res(){
expstring="";
textdisp.value="";
numstring="";
}
</script>
q样Q我们利用Eval 函数Q仅仅十几行代码做好了q个计算器?/p>
转蝲Qhttp://school.cfan.com.cn/pro/pother/2006-08-28/1156732532d14455.shtml
]]>
<script>
// 增加日历控g关闭事g 2009-10-26
function getObj() {
var divs = document.body.getElementsByTagName("div");
for (var i=0,len=divs.length;i<len;i++) {
if (divs[i].className == 'WdateDiv') {
divs[i].onblur = function () {
$dp.el.onchange();
};
break;
}
}
}
</script>
</head>
<body leftmargin="0" topmargin="0" onload="$c.autoSize();getObj();">
</body>
posted @ 2009-10-31 18:08 断点 阅读(19) | 评论 (0)
]]>
其作用如下:
1、测试字W串的某个模式。例如,可以对一个输入字W串q行试Q看在该字符串是否存在一个电(sh)话号码模式或一个信用卡L模式。这UCؓ数据有效性验证?
2、替换文本。可以在文档中用一个正则表辑ּ来标识特定文字,然后可以全部其删除Q或者替换ؓ别的文字?
3、根据模式匹配从字符串中提取一个子字符丌Ӏ可以用来在文本或输入字D中查找特定文字?
正则表达式的形式一般如下:
/love/ 其中位于“/”定界W之间的部分是要在目标对象中q行匚w的模式。用户只要把希望查找匚w对象的模式内Ҏ(gu)?#8220;/”定界W之间即可。ؓ了能够用户更加灉|的定制模式内容,正则表达式提供了专门?#8220;元字W?#8221;。所谓元字符是指那些在正则表达式中hҎ(gu)意义的专用字W,可以用来规定其前导字W(即位于元字符前面的字W)在目标对象中的出现模式?br />
1、元字符。常用的包括Q?“+”Q?“*”Q以?“?”?
“+”元字W规定其前导字符必须在目标对象中q箋出现一ơ或多次?
“*”元字W规定其前导字符必须在目标对象中出现零次或连l多ơ?
“?”元字W规定其前导对象必须在目标对象中q箋出现零次或一ơ?nbsp;
\sQ用于匹配单个空格符Q包括tab键和换行W;
\SQ用于匹配除单个I格W之外的所有字W;
\dQ用于匹配从0?的数字;
\wQ用于匹配字母,数字或下划线字符Q?
\WQ用于匹配所有与\w不匹配的字符Q?
. Q用于匹配除换行W之外的所有字W?
例子Q?br />
/fo+/ 因ؓ上述正则表达式中包含“+”元字W,表示可以与目标对象中?“fool”, “fo”, 或?“football”{在字母f后面q箋出现一个或多个字母o的字W串相匹配?
/eg*/ 因ؓ上述正则表达式中包含“*”元字W,表示可以与目标对象中?“easy”, “ego”, 或?“egg”{在字母e后面q箋出现零个或多个字母g的字W串相匹配?
/Wil?/ 因ؓ上述正则表达式中包含“Q?#8221;元字W,表示可以与目标对象中?“Win”, 或?#8220;Wilson”,{在字母i后面q箋出现零个或一个字母l的字W串相匹配?
/\s+/ 上述正则表达式可以用于匹配目标对象中的一个或多个I格字符?
/\d000/ 如果我们手中有一份复杂的财务报表Q那么我们可以通过上述正则表达式轻而易丄查找到所有总额辑֍元的N?/p>
2、限定符。有时候不知道要匹配多字W。ؓ了能适应q种不确定性,正则表达式支持限定符的概c?/span>
{n} n 是一个非负整数。匹配确定的 n ơ。例如,'o{2}' 不能匚w "Bob" 中的 'o'Q但是能匚w "food" 中的两个 o?
{n,} n 是一个非负整数。至匹?n ơ。例如,'o{2,}' 不能匚w "Bob" 中的 'o'Q但能匹?"foooood" 中的所?o?o{1,}' {h(hun)?'o+'?o{0,}' 则等价于 'o*'?
{n,m} m ?n 均ؓ非负整数Q其中n <= m。最匹?n ơ且最多匹?m ơ。例如,"o{1,3}" 匹?"fooooood" 中的前三?o?o{0,1}' {h(hun)?'o?'。请注意在逗号和两个数之间不能有空根{?
3、定位符。定位符用于规定匚w模式在目标对象中的出C|?包括Q?“^”, “$”, “\b” 以及 “\B”?
“^”定位W规定匹配模式必d现在目标字符串的开?
“$”定位W规定匹配模式必d现在目标对象的结?
“\b”定位W规定匹配模式必d现在目标字符串的开头或l尾的两个边界之一
“\B”定位W则规定匚w对象必须位于目标字符串的开头和l尾两个边界之内?/p>
举例Q?
/^hell/ 因ؓ上述正则表达式中包含“^”定位W,所以可以与目标对象中以 “hell”, “hello”?#8220;hellhound”开头的字符串相匚w?br />
/ar$/ 因ؓ上述正则表达式中包含“$”定位W,所以可以与目标对象中以 “car”, “bar”?“ar” l尾的字W串相匹配?
/\bbom/ 因ؓ上述正则表达式模式以“\b”定位W开_所以可以与目标对象中以 “bomb”, ?“bom”开头的字符串相匚w?br />
/man\b/ 因ؓ上述正则表达式模式以“\b”定位W结,所以可以与目标对象中以 “human”, “woman”?“man”l尾的字W串相匹配?
4、ؓ?/span>方便用户更加灉|的设定匹配模式,正则表达式允怋用者在匚w模式中指定某一个范围而不局限于具体字符?/span>例如Q?nbsp;
/[A-Z]/ 上述正则表达式将会与从A到Z范围内Q何一个大写字母相匚w?
/[a-z]/ 上述正则表达式将会与从a到z范围内Q何一个小写字母相匚w?
/[0-9]/ 上述正则表达式将会与??范围内Q何一个数字相匚w?
/([a-z][A-Z][0-9])+/ 上述正则表达式将会与M由字母和数字l成的字W串Q如 “aB0” {相匚w?
5、这里需要提醒用h意的一点就是可以在正则表达式中使用 “()” 把字W串l合在一赗?/span>
6、如果我们希望在正则表达式中实现cM~程逻辑中的“?#8221;q算Q在多个不同的模式中任选一个进行匹配的话,可以使用道W?“|”?/span>
例如Q?to|too|2/ 上述正则表达式将会与目标对象中的 “to”, “too”, ?“2” 相匹配?
7、否定符 “[^]”。规定目标对象中不能存在模式中所规定的字W串。例如:/[^A-C]/ 上述字符串将会与目标对象中除AQBQ和C之外的Q何字W相匚w?/span>
8、当用户需要在正则表达式的模式中加入元字符Q可以用{义符“\”。例如:/Th\*/ 上述正则表达式将会与目标对象中的“Th*”而非“The”{相匚w?
区号Q前面一?Q后面跟2-3位数?Q?0\d{2,3}
?sh)话LQ?-8位数字: \d{7,8}
分机P一般都?位数字: \d{3,}
q样q接h是验证?sh)话的正则表辑ּ了?^((0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/
手机L前面?开_W二位现在是3或?Q后面是9位数字,则:/^1[35]\d{9}$/
1、round Ҏ(gu)
作用Q返回与l出的数D辑ּ最接近的整数?br />
语法QMath.round(number) Q必选项 number 参数是要舍入到最接近整数的倹{?br />
说明Q如?number 的小数部分大于等?0.5Q返回值是大于 number 的最整数。否则,round q回于{于 number 的最大整数?
2、在 Javascript 1.5 QIE5.5+QNS6+ 以上版本支持Q中Q新增了2个专门用于货币流通的函数QNumber.toFixed(x) ?Number.toPrecision(x)?/p>
Number.toFixed(x) 是将指定数字截取数点后 x 位, Number.toPrecision(x) 是将整个数字截取指定QxQ长度。注意,一个是计算数点后的长度,一个是计算整个数字的长??/span>
例如Q?br />
<script type="text/javascript">
var aa = 2.3362;
document.write(aa.toFixed(1)); // 2.3
document.write(aa.toFixed(2)); // 2.34
document.write(aa.toPrecision(2)); // 2.3
document.write(aa.toPrecision(3)); // 2.34
document.write(Math.round(aa * 10) / 10); // 2.3
document.write(Math.round(aa * 100) / 100); // 2.34
</script>
׃是新增函敎ͼ所以要考虑览器支持问题?/p>
posted @ 2009-08-26 13:52 断点 阅读(157) | 评论 (0)
js的数l同时属于烦引数l和动态数l,因ؓ本质上它?yu)是一个js对象Q体现着js动态语aҎ(gu)。但js的烦引数lƈ?#8220;q箋分配”内存的,因此索引Ҏ(gu)q不会带来很高的效率。而java中的数组则是q箋分配内存的?/p>
例子Q?br />
function test(){
var oneArray=new Array();
oneArray["first"]="firstValue";
oneArray["second"]="secondValue";
oneDrapList=document.createElement("select");
for(att in oneArray){
var oneOption=document.createElement("option");
oneOption.text=oneArray[att]
oneOption.value=att;
try{
oneDrapList.add(oneOption,null);
}
catch(ex){
oneDrapList.add(oneOption);
}
}
}
function test(){
var obj = tool.getFilterByName("<%=dwname%>",'VehicleClass');
if(obj){
var cProdNo = '<%=cProdNo%>';
if(cProdNo=="0316"||cProdNo=="0325"){
var array = {"摩托车类":"摩托车类","拖拉机类":"拖拉机类"};
for(var temp in array){
var option = new Option(temp,array[temp]);
obj.add(option);
}
}
}
}
posted @ 2009-08-14 21:28 断点 阅读(202) | 评论 (0)
1、将日期字符串{换成日期对象?br />
yyyy-mm-ddq种格式的字W串转化成日期对象,可以用new Date(Date.parse(str.replace(/-/g,"/")));
如下Q?br />
var endDateStr = endYear +"-"+ endMonth +"-"+ endDay;
endDate = new Date(Date.parse(endDateStr.replace(/-/g,"/")));
实例昄Q?br />
endDateStrQ?2010-5-20"
Date.parse(endDateStr.replace(/-/g,"/"))Q?274284800000
endDateQThu May 20 00:00:00 UTC+0800 2010
yyyy/mm/ddq种格式转化成日期对象,可以用new Date(str);
如下Q?br />
var endDateStr = endYear +"/"+ endMonth +"/"+ endDay;
endDate = new Date(endDateStr);
实例昄Q?2010/5/20"、Thu May 20 00:00:00 UTC+0800 2010
yyyymmddq种格式转换成日期对象,可以用new Date(sDate.replace(/^(\d{4})(\d{2})(\d{2})$/,"$1/$2/$3"));
如下Q?br />
var sDate="20090516";
sDate=sDate.replace(/^(\d{4})(\d{2})(\d{2})$/,"$1/$2/$3");
new Date(sDate);
实例昄Q?2009/05/16"、Sat May 16 00:00:00 UTC+0800 2009
2、显C当前日期的下一天?/span>
var date = new Date();
var b = date.getDate();
b += 1;
date.setDate(b);
3、求两个日期之间相差的天数?br />
var Date1 =new Date(2008,6,28); //Mon Jul 28 00:00:00 UTC+0800 2008
var Date2 =new Date(2009,5,16); //Tue Jun 16 00:00:00 UTC+0800 2009
var n = (Date2.getTime()-Date1.getTime())/(24*60*60*1000); //323
var n = (Date2-Date1)/(24*60*60*1000); //直接相减得到的是毫秒数?/p>
4、dateObj.getDay() q回 Date 对象中用本地旉表示的一周中的日期倹{?
getDay Ҏ(gu)所q回的值是一个处?0 ?6 之间的整敎ͼ它代表了一周中的某一天,q回g一周中日期的对应关pd下:
?星期
0 星期?
1 星期一
2 星期?
3 星期?
4 星期?
5 星期?
6 星期?
此方法可以用来对 ‘工作?#8217;的判断?/p>
posted @ 2009-05-16 15:24 断点 阅读(87) | 评论 (0)
2、自己写的特Ҏ(gu)出错Q调用js自带的函敎ͼ使生的对象自加一Q很好的控制?008-10-32、undefined 、null的生?
function nextdate(){
var date = new Date();
var b = date.getDate();
b += 1;
date.setDate(b);
var year = date.getYear(); //取得当前q䆾命o
var month = date.getMonth()+1;
var day = date.getDate();
if(month < 10){ month ='0'+ month ; }
if(day < 10){ day ='0'+ day ; }
var dateStr = year+ "-"+ month+"-"+day ;
alert(dateStr);
}
2?br />
Date.parse(dateVal)
其中必选项 dateVal 是一个包含以诸如 "Jan 5, 1996 08:47:00" 的格式表C的日期的字W串Q或者是一个从 ActiveX(R) 对象或其他对象中获取?VT_DATE 倹{?
说明
parse Ҏ(gu)q回一个整数|q个整数表示 dateVal 中所包含的日期与 1970 q?1 ?1 日午夜之间相间隔的毫U数?
parse Ҏ(gu)?Date 对象的一个静态方法。正因ؓ它是一个静态方法,它是通过下面例子中所C的Ҏ(gu)被调用的Q而不是作Z个已创徏 Date 对象的一个方法被调用?/p>
下面是个例子Q?br /> var dateBgn = Date.parse(bgnStr.replace(/-/g, "/"));
parseInt(numString, [radix])
参数
numString 必选项。要转换为数字的字符丌Ӏ?br />
radix 可选项。在 2 ?36 之间的表C?numString 所保存数字的进制的倹{如果没有提供,则前~?'0x' 的字W串被当作十六进Ӟ前缀?'0' 的字W串被当作八q制。所有其它字W串都被当作是十q制的?/p>
说明
parseInt Ҏ(gu)q回与保存在 numString 中的数字值相{的整数。如?numString 的前~不能解释为整敎ͼ则返?NaNQ而不是数字)?
例子如下Q?br /> var endDay = parseInt(endStr.substring(8,10),10);
posted @ 2009-05-09 16:25 断点 阅读(33) | 评论 (0)