如果文本字段不为空且ID不一致,则启用复选框

时间:2012-12-27 18:24:33

标签: javascript jsp checkbox

目的是在页面加载时禁用复选框,并在填充文本框之前保持灰色。

<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;
    }
 }

但它没有用。我假设因为名称不一致,但我必须这样做。

1 个答案:

答案 0 :(得分:1)

您尚未获得html元素的ID,并且正在尝试使用getElementById,这将返回null。 Javascript引擎无法设置null已禁用属性。尝试为下面给出的元素设置 id 属性。

同样在您的userTyped函数中,您引用了thisthis这里是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/