0

我有一个选择框,当从另一个选择框中选择一个选项时会填充该框。现在我希望在单击选项时发送 AJAX 调用。当单击事件绑定到选择框时,即使未单击选项,即即使我检查了所有选项,它也会发送 ajax。

$('#supname').click(function() {
    $('#gsm,#width,#type,#weight').empty();
    if($('#supname option').is(':selected')) { 
        $.post('<?php echo base_url()."index.php/inventory/getreeldata4supplier"; ?>'
            ,{supcode:$('#supname :selected').val(),reelno:$('#reelno').val(),date:$('#gidate').val()}
            , function(data){   
                if(data[0].count==0) {
                    alert('No reel entered on or before issue date');
                }
                else {
                    $.each(data,function(k,v){ 
                        $('#gsm').val(v.gsm);
                        $('#width').val(v.width);
                        $('#type').val(v.type);
                        $('#weight').val(v.weight);
                    })
                }
        },'json'  );
    }
 });

supname 是选择框的 id。如果未明确单击选项,即如果我检查选项,我不希望发送 AJAX。感谢您的每一次努力。

4

2 回答 2

1

正如我评论的那样,我建议您尝试一下on("change"

您将需要第一个选项:

<select id="supname">
  <option value="">Please select</option>
  <option value="xxxx">supcode 1</option>

您还可以缩短值的测试和访问:

$('#supname').on("change",function() {
  $('#gsm,#width,#type,#weight').empty();
  var supcode = $(this).val();
  if (supcode) {
    $.post('<?php echo base_url()."index.php/inventory/getreeldata4supplier"; ?>'
      ,{"supcode":supcode,"reelno":$('#reelno').val(),"date":$('#gidate').val()}
      ,  function(data){   
           if(data[0].count==0) {
              alert('No reel entered on or before issue date');
           }
           else {
             $.each(data,function(k,v){ 
                 $('#gsm').val(v.gsm);
                 $('#width').val(v.width);
                 $('#type').val(v.type);
                 $('#weight').val(v.weight); })
          }
    },'json');
  }
 });
于 2013-06-20T12:00:11.933 回答
0

改为尝试change事件。Change选择其他选项时,事件会发射。
它的语法类似于click:

$('#supname').change(function() {
    //functionality
}
于 2013-06-20T11:58:15.803 回答