目的是在页面加载时禁用复选框,并在填充文本框之前保持灰色。
<input type="text" name="<%=commentID%>" />
<input type="checkbox" name="<%=SkipID%>" value="N" disabled/>
我尝试做类似
的事情<input type="text" name="<%=commentID%>" onkeyup="userTyped('<%=SkipID%>') />
function userTyped(commen){
if(this.value.length > 0){
document.getElementById(commen).disabled=false;
}else{
document.getElementById(commen).disabled=true;
}
}
但它没有用。我假设因为名称不一致,但我必须这样做。
答案 0 :(得分:1)
您尚未获得html元素的ID,并且正在尝试使用getElementById
,这将返回null
。 Javascript引擎无法设置null
的已禁用属性。尝试为下面给出的元素设置 id 属性。
同样在您的userTyped函数中,您引用了this
。 this
这里是window
对象,而不是输入元素。您需要将引用传递给input元素才能使其正常工作,例如onkeyup="userTyped('<%=SkipID%>', this)"
请在下面找到可能的更正:
<input type="text" name="<%=commentID%>" id="<%=commentID%>" onkeyup="userTyped('<%=SkipID%>', this)" />
<input type="checkbox" name="<%=SkipID%>" id="<%=SkipID%>" value="N" disabled/>
/** commen is the id
* e is the input element
**/
function userTyped(commen, e){
if(e.value.length > 0){
document.getElementById(commen).disabled=false;
}else{
document.getElementById(commen).disabled=true;
}
}
jsFiddle这里:http://jsfiddle.net/deepumohanp/dGS9H/