2017-02-16 24 views
0

我想从api获取json响应,并因此在JQuery中为HTML中的动态添加DOM元素做事件。获取JSON响应为每个动态添加索引DOM元素与JQuery

我可以显示每个索引元素的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(response.message)之前不需要调用'.html('')',因为'.html()'将完全取代那里的任何东西。 – Barmar

回答

1

一旦将“数据存在”推送到数组中,它将在接收到所有未来的AJAX响应后仍然存在。因此,只需在收到其中一个响应时禁用提交按钮,即可保持禁用状态。

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

相关问题