0

目的は、ページの読み込み時にチェックボックスを無効にし、テキストボックスがいっぱいになるまでグレー表示のままにすることです。

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

しかし、うまくいきませんでした。名前の矛盾から推測していますが、それが必要です。

4

1 に答える 1

2

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/

于 2012-12-27T18:35:46.600 に答える