jsp中span的id可不可以做为javascript函数的参数?

来源:百度知道 编辑:UC知道 时间:2024/06/03 21:49:40
<tr>
<td width="92" height="27"><div align="right">用户名:</div></td>
<td width="172"><div align="left">
<label>
<input type="text" name="name" id="name" onchange="validate(name,4,10,namevali)"/>
</label>
</div></td>
<td width="151"><span id = "namevali"> </span></td>
</tr>
以下是外部的 .js 文件内容:
function validate(field, min, max, valispan) {
var na = document.getElementById(field);
var vali = document.getElementById(valispan);
if (na.value.length > max || na.value.length < min) {
vali.innerHTML = "长度不合要求";
} else {
vali.innerhtml = "OK";
}

}
可是那个 vali 变量一直都是null
我用alert(valispan)显示的还是空

suevon说

改成
onchange="validate('name',4,10,'namevali')"
试试

var vali = document.getElementById("valispan");
这样写就OK了

如果在IE7+下,你可以写成:
onchange = "validate(name.id,4,10,namevali.id)"

你的代码可以简化的,而且,应该学会运用this来传参数,改成如下:
onchange = "validate(this,4,10)"

//js:
function validate(obj, min, max){
var vali = document.getElementById('namevali');
vali.innerHTML = (obj.value.length > max || obj.value.length < min)? "长度不合要求" : "OK";

你的问题是这里:
validate(name,4,10,namevali);
name和namevali被识别为对象,而不是id的字串,非要这么写的话,应该是加引号"name","namevali"