1

チェックボックスから動的変数を選択して、チェックボックスの状態に応じて無効または有効にしようとしています。HTMLコード:

<input type="checkbox" name="only_once_1" id="only_once_1" class="onlyonce" >
<input type="text" id="temp_1" name="temp_1">

JAVASCRIPT

$(".onlyonce").change(function($){
   var parts = this.name.match(/(\D+)(\d+)$/); 
   if(this.value == "on"){
      $("#"+"temp_"+parts[2]).disable()
   }else{
      $("#"+"temp_"+parts[2]).enable()
   }
});

アイデアは、動的に追加されるこれらのボックスのコピーが多数ある可能性があるということです。これを機能させる方法はありますか?

ありがとう!

4

2 に答える 2

3

3 つのエラーがあります。作業コードは次のとおりです。

$(".onlyonce").change(function() {  // <-- error #1: remove $ parameter
    var parts = this.name.match(/(\D+)(\d+)$/);
    if (this.checked) { // <-- error #2: use checked property
        $("#" + "temp_" + parts[2]).prop('disabled', true)  // <-- error #3: use prop method
    } else {
        $("#" + "temp_" + parts[2]).prop('disabled', false)
    }
});

http://jsfiddle.net/XR9me/

主な問題は次のとおり$(".onlyonce").change(function($) {です。$メソッドにパラメーターとして渡すことchangeで、jQuery への参照を上書きします (クロージャー内$はイベント オブジェクトになりました)。

また、少しきれいに書くこともできます:

$(".onlyonce").change(function() {
    var parts = this.name.match(/(\D+)(\d+)$/);
    $("#temp_" + parts[2]).prop('disabled', this.checked);
});

http://jsfiddle.net/XR9me/1/

于 2013-03-09T21:39:30.707 に答える
1

HTML 構造を制御できる場合は、次のことができます。

$('.onlyonce').change(function(){
    $(this).next('input[type=text]').prop('disabled', this.checked);
});

http://jsfiddle.net/vol7ron/XR9me/2/

于 2013-03-09T22:10:38.037 に答える