大家好,iteye今日开博!有奖问答欢迎参加。。。。。
今天小江让我实现一个很简单的功能,我的写法也是很常规的,但是时间却用掉很不常规的时间,当时的情景是这样的的, 我做一个长度判断,
<tr><td width="14%" class="font_b1" id="Content_Sms"> <div> 短信: </div> </td> <td width="86%" align="left" colspan="3"> <input class="tx" name="affairs.ContentSms" size="101" maxlength="101" onkeyup="javascript:checkPname(this);"/> <span class="check_pname"></span> </td> </tr>
//长度判断 function checkPname(obj){ var message = ""; var length = obj.value.length-1; if(length>=200 && obj.className=="pname" ){ message="<font style='color: red; font-size: 12px; font-weight: bold;'>已达到最大"+length+"字符的限制</font>"; $(obj).next(".check_pname").css("display","block"); $(obj).next(".check_pname").html(message); }else if(length>=32 && obj.className=="Type"){ message="<font style='color: red; font-size: 12px; font-weight: bold;'>已达到最大"+length+"字符的限制</font>"; $(obj).next(".check_pname").css("display","block"); $(obj).next(".check_pname").html(message); }else if(length>=100 && obj.className=="tx"){ message="<font style='color: red; font-size: 12px; font-weight: bold;'>已达到最大"+length+"字符的限制</font>"; $(obj).next(".check_pname").css("display","block"); $(obj).next(".check_pname").html(message); }else if(length==0 && obj.className=="pname"){ $(obj).next(".check_pname").css("display","inline"); }else{ $(obj).next(".check_pname").css("display","none"); } }
用法非常简单,但是当我输入的字数超过限制之后<span>就是不显示message,这个问题真奇怪,然后我专门试了试在span中加入了<span class="check_pname">ss</span>
结果就是取不到ss,这可把我急死了,最后请来周董,周董搞了一会,用firefox可以搞定,但是回到Ie又不行,开始以为是缓存问题,但是后来,发现不是这个问题,最后周董慧眼识珠一眼看出<input>的用法有误。所以应该把<input></input>的写法改为<input/>调试成功!!
具体解释:ie会默认的将<input>自动加/如果后边再跟</input>则会出现2个input标签所以jquery找不到对象!!