0

jQueryによる要素の有効化/無効化については多くのことが書かれていますが、少し混乱しています。選択と単一の入力フィールドを使用しようとしています。選択を使用する場合は、フィールドを無効にする必要があり、その逆も同様です。

例えば

  <span>Choice a year from the list</span>
  <select id="selYear" name="selYear" >
        <option id="op-0">Choice a year</option>
        <option id="op-1" >1893      </option>
        <option id="op-2" >1894</option> 
  </select>
  <span>Or type a new one</span>
  <input id="year_single" name="year_single" type="text" >

(もちろん、入力フィルターが必要です。) 最初のオプションが選択されている場合、入力フィールドを無効にして有効にするのは簡単でした。誰かが方法を尋ねた場合、コードがあります:

  $("#selYear").change(function() {
    if(this[0].selected){           
        $("#year_single").attr("disabled",false);   
    }       
    else  
    $("#year_single").attr("disabled",true)   

})
  )

しかし、逆のケースは、私が期待したようには機能しません。私は試した:

    $("#year_single").change(function() {
    if($(this).val().length == 0){
        //alert("aaa");
        $("#selYear").attr("disabled",false);   
    }       
    else  
    $("#selYear").attr("disabled",true)   

})

これは機能しますが、挿入キーを押した後、またはそれをクリックした後、選択が無効になり、最初に数字を挿入した直後に無効になると予想されました。そのような場合、おそらくchange()関数は正しい選択ではありませんか?

4

4 に答える 4

0

代わりに onkeyup イベントを使用してみてください

$("#year_single").on("keyup", function(event){
   //YOUR CODE
});
于 2013-08-21T13:29:35.093 に答える