2017-02-15 16 views
0

當我點擊選擇,然後它是提取數據並應用到選項。之後,當我點擊選項,然後數據再次提取。當我選擇一個不應該發生的選項時,問題會重新出現。如何解決這個??停止重新點擊選擇菜單與jQuery onclick

<select class="form-control m-b" name="agency" id="agency"> 
    <option selected value="{{$assignment->agency->id}}">{{$assignment->agency->name}}</option> 
    <option value="1">None</option> 
</select> 

$('#agency').on('click', function(){ 
    getagency(); 
}); 


function getagency(){ 
     var user_id = $('#user').val(); 
     var token = $('input[name=_token]').val(); 
     $.ajax({ 
      'type':'post', 
      'url':'{{URL::to('postagency')}}', 
      'headers': {'X-CSRF-TOKEN': token}, 
      'data':{'user_id':user_id}, 
      'dataType':'json', 
      'beforeSend':function(){ $('.row').mask('Please Wait...'); }, 
      'success':function(resp){ 
       $('#agency').children('option').empty().remove(); 
       $.each(resp,function(intex,info){ 
        $('<option value="'+ info.id +'">'+ info.name +'</option>').appendTo('#agency'); 
        $('.row').unmask(); 
       }); 
      } 
     }); 
    } 
+0

當頁面加載,而不是點擊。 –

+0

看看jQuery'one'而不是'on' –

+0

根據項目要求,需要更多的動態需要@HappyCoding –

回答

1

如果你要綁定的動作只有一次,你可以這樣做,將被執行: 啓用此:

$('#agency').on('click', function(){ 
    getagency(); 
}); 

into th是:

$('#agency').one('click', function(){ 
    getagency(); 
}); 

和點擊功能將被綁定僅如果要加載的選項你爲什麼不加載數據的第一次執行它

1

改變你的初始化代碼::

$('#agency').on('change', function(){ 
    getagency(); 
}); 
+0

@dipankar naskar,請upvote答案並接受答案,如果它幫助你和其他人。 –

+0

'$('#agency')。one('click',function(){ getagency(); });' –

+0

@DipankarNaskar OK。 –

0
$('#agency').one('click', function(){ 
    getagency(); 
});