2017-02-16 2 views
0

apiからjsonレスポンスを取得しようとしているため、動的に追加されたDOM要素をHTMLでJQueryで処理しています。JQueryで動的に追加されるすべてのインデックスDOM要素のJSON応答を取得する

インデックス要素ごとにjsonメッセージを表示できます。

 function checkIdnAvailability() { 
      var jsonRsp = []; 
      $('.iin').each(function (index) { 
        var tb0001_idn_val = $('#iin'+index).val(); 
        $.post("<?php echo site_url()?>college/idnCheck", { 
         tb0001_idn: tb0001_idn_val 
        }, function(response){ 
         $('#loading').hide(); 
         $('#message'+index).html('').html(response.message).show(); 
         jsonRsp.push(response.message); 
         if($.inArray("data exists", jsonRsp)) { 
          $(':input[type="submit"]').prop('disabled', true); 
         }else { 
          $(':input[type="submit"]').prop('disabled', false); 
         } 
        }); 

       } 
      ) 
     } 

ここで私は "データが存在する"と答えたい場合はjsonの応答を送信ボタンを無効にしたいと思います。

+0

問題は...ですか? –

+0

@JorgeFuentesGonzálezコードが機能しません! –

+0

'.html()'はそこにあるものを完全に置き換えるので、 '.html(response ')'の前に' .html( '') 'を呼び出す必要はありません。 – Barmar

答えて

1

「データが存在しました」がアレイにプッシュされると、それ以降のすべてのAJAX応答が受信された後も引き続き存在します。したがって、これらの応答の1つを受信したときに送信ボタンを無効にするだけで、無効にしておくことができます。

function checkIdnAvailability() { 
    $(':input[type="submit"]').prop('disabled', false); 
    $('.iin').each(function(index) { 
    var tb0001_idn_val = $('#iin' + index).val(); 
    $.post("<?php echo site_url()?>college/idnCheck", { 
     tb0001_idn: tb0001_idn_val 
    }, function(response) { 
     $('#loading').hide(); 
     $('#message' + index).html(response.message).show(); 
     if (response.message == "data exists") { 
     $(':input[type="submit"]').prop('disabled', true); 
     } 
    }); 
    }) 
} 
+0

お返事ありがとうございます。私はあなたのコードを試しましたが、データが存在しなくても送信ボタンは無効のままです –

+0

私はそれがどのようになるかはわかりません。 '.prop( 'disabled'、true)'行にブレークポイントを設定しようとしたことがありますか? – Barmar

関連する問題