簡體   English   中英

觸發事件后如何選擇選擇選項

[英]How do I select an option of select after triggering an event

我有一個jQuery回傳,並在收到JSON回復后更改了輸入類型選擇的值,如下所示

$('#new-address select[name=\'country_id\']').val(data['country_id']).trigger('change');
$('#new-address select[name=\'zone_id\']').val(data['zone_id']);

在更改選定值之后,我觸發了一個事件“更改”以填充狀態選擇輸入,此后,我想更改狀態選擇輸入的選定值,但是從上面的代碼中,它沒有更改狀態選擇的值,而是填充狀態。

因此,我認為可能是觸發此功能后控件沒有返回,因此要測試我是否發出警報以查看它是否即將來到這里

$('#new-address select[name=\'country_id\']').val(data['country_id']).trigger('change');
alert('came here');
$('#new-address select[name=\'zone_id\']').val(data['zone_id']);

經過測試后,我得到警告,說是來到這里,單擊“確定”后,狀態的值會根據需要更改。

那么,我的方法之前有什么問題,為什么添加警報后它仍然可以正常工作? 我應該做什么改變才能得到我想要的東西?

提前致謝。

我不確定這是正確還是錯誤的方法,但是對我有用。 正如@abhi所建議的那樣,javascript是按順序運行的,因此我將代碼更改為:

$('#new-address select[name=\'country_id\']').val(data['country_id']);
var selectedstate = data['zone_id'];
$.get(
      "index.php?route=common/home/country&token=<?php echo $token;?>",
       { 'country_id': data['country_id'] },
       function(json) {
           html = '<option value=""><?php echo $text_select; ?></option>';
           if (json['zone'] != '') {
               for (i = 0; i < json['zone'].length; i++) {
                    html += '<option value="' + json['zone'][i]['zone_id'] + '"';
                    if (parseInt(json['zone'][i]['zone_id']) == parseInt(selectedstate)) {
                        html += ' selected="selected"';
                     }
                     html += '>' + json['zone'][i]['name'] + '</option>';
                }
           } else {
                   html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>';
                  }
          $('#new-address select[name=\'zone_id\']').html(html);
        },
        'json'
);

通過這樣做,我得到了我想要的,因為在為狀態選擇創建html時設置了狀態的選定值。

這與ajax調用的async屬性有關。 不建議這樣做,但可以將其設置為false,並且應該可以正常工作。 或者您真的需要學習如何使用回叫功能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM