日期:2014-05-17  浏览次数:20687 次

html 标签中的<input>
大家好,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找不到对象!!