3

jqueryで関数を作成したいのですが、入力テキストボックスにコンテンツがある場合は、チェックボックスをオンにします。空白の場合は、チェックボックスをオフにします。

<form>
<input class="boxcheck" type="checkbox">
checkbox

<input class="boxtext" type="text">
text here 
</form>

チェックボックスとテキスト入力は最初は空ですが、ユーザーがテキストボックスに何かを書き込むことを決定した場合、チェックボックスがまだチェックされていない場合は、チェックボックスが自動的にチェックされます。

もう1つの問題は、ユーザーが何かを入力してこの関数がチェックボックスをオンにすることですが、ユーザーが入力ボックスに戻って入力ボックスの内容を削除した場合も、チェックボックスが自動的にオフになります。

私が考えることができる最後の問題は、ユーザーがテキストボックスに何かを書き込み、この関数がチェックボックスをオンにしているが、ユーザーが何らかの奇妙な理由でチェックボックスをオフにした場合、チェックボックスを再度強制的にチェックすることは可能でしょうか?

keyup私はとトリガーで遊んでいpropますが、まったく運がありません。また、JavaScriptは非常に初めてです。

私が遊んでいるコードは次のようなものです。

    $('input[text]').keyup(function(){
    if (this.value.length > 0) {
       $('input[name="checkbox"]').prop('disabled', false)
    } else {
})  
4

3 に答える 3

1

keyup()関数を使用して値と条件をチェックし、チェックボックスをオフにします。

 $(".boxtext").keyup(function(){
   if($(this).val()!= ""){
     $('.boxcheck').prop('checked',true);
   }else{
     $('.boxcheck').prop('checked',false);
   }
})

更新しました

そしてあなたの最後の問題のために..私はあなたがチェックボックスを無効にした方が良いと思います..ユーザーがチェックを外すことができないように...

 $('.boxcheck').prop('disabled',true);

更新されたフィドル

于 2013-01-28T06:39:31.903 に答える
0

キーアップに加えてblurイベントを処理することをお勧めします。これは、ユーザーがキーボードなしでテキストボックスの値を変更する場合(コピー/カット/貼り付け/ドラッグアンドドロップなど)をカバーするため、心配する必要はありません。クリップボードイベントを処理できるブラウザとできないブラウザ:

$(document).ready(function() {
    $("input.boxtext").on("keyup blur", function() {
        $("input.boxcheck").prop("checked", this.value != "");
    });

    // don't allow user to manually change the checkbox
    $("input.boxcheck").click(function() {
        return false;
    });
});

デモ: http: //jsfiddle.net/WTVEn/

ユーザーがチェックボックスを変更するのを防ぐコードを含めましたが、手動で編集できない場合、なぜチェックボックスが必要なのですか?

于 2013-01-28T06:43:13.353 に答える
0

これを試して:

 $(".boxtext").change(function(){
   $('.boxcheck').attr('checked',true);
   if($(this).val()== ""){
     $('.boxcheck').attr('checked',false);
   }
});
于 2013-01-28T06:44:40.553 に答える