今天在写js的时候碰到一个错误,js代码如下:
//
验证日期格式的正则。如 2007-09-12
function
isDate(str)
...
{ var days = new Array( 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ); var a = str.match( /^ (d ... { 4 } )( - )(d ... { 1 , 2 } )( - )(d ... { 1 , 2 } )$ / ); if (a == null ) return false ; days[ 1 ] = (( 0 == a[ 1 ] % 4 ) && ( 0 != (a[ 1 ] % 100 ))) || ( 0 == a[ 1 ] % 400 ) ? 29 : 28 ; if (a[ 1 ] <= 1900 || a[ 3 ] == 0 || a[ 3 ] >= 13 || a[ 5 ] == 0 || a[ 5 ] > days[a[ 3 ] - 1 ]) return false ; return true ; }
function
editTime()
...
{ var startDate = document.getElementById( " meetStartDate " ); var endDate = document.getElementById( " meetEndDate " ); if ( ! isDate(startDate.value.trim())) ... { alert( ' <bean:message key="label.editMeetTime.startTime"/> ' + ' ' + ' <bean:message key="msg.meetBoard.StartDateIsError"/> ' ); startDate.focus(); return ; } if ( ! isDate(endDate.value.trim())) ... { alert( ' <bean:message key="label.editMeetTime.endTime"/> ' + ' ' + ' <bean:message key="msg.meetBoard.StartDateIsError"/> ' ); endDate.focus(); return ; } editMeetTimeForm.action= ' saveMeetTime.do ' ; editMeetTimeForm.submit(); window.opener.location = ' meetBoard.do?meetingId= ' + ' <bean:write name="editMeetTimeForm" property="meetDetailId"/> ' ; window.close(); }
黄色标志处有错,说不支持这个属性。把trim()去掉后,就没错了。记得以前这样使过,没有报错。查了一下以前可以支持trim的页面,发现如果在页面上导入一个有关ajax的js就ok了,如下:
<
script type
=
"
text/javascript
"
src
=
"
js/ajaxtags/ajaxtags-1.2-beta2.js
"
></
script
>
在这个js里搜了一下trim,发现有这样的一个方法:
String.prototype.trim
=
function
()
...
{ return this .replace( / ( ^ s * ) | (s * $) / g, "" ); }
于是把上面导入的js去掉,单把这个方法加进来,也ok。至于为什么,还不清楚,改日找时间再研究一下。
最近感觉跟js嗑上了……