簡體   English   中英

jQuery希望觸發選擇框更改

[英]Jquery looking to trigger select box change

嘿,具有長方法的選擇框已綁定到它的html中的選擇框,如下所示:

HTML:

<select id="select1">
  <option>First select Advertiser</option>
  <?php
     buildSelectOptionsFromPagination();  // Dynamically build the options list
  ?>
</select> 

Javascript:

$('#select1').change(function(){
                alert('#select1');
                $('#innerP').remove();
                $('#innerH').remove();
                $('#waitmsg').append('  ...</h2></p>');
                $("#show_c ").attr("disabled", true);   


                 $.ajax({
                        url: 'observer.php',
                        data: "ctrl=in&v_id="+v_id,
                        success: function(data) {
                             var newData = "<option id=\"firstopt_insert\"> blah blah <\/option>" + data;
                             $('#in111').html(data);
                             $('#in222').trigger('change');

                        },
                        error: function (request, status, error) {
                            alert(request.responseText+"\nThere was an server error please refresh the page 1 ");
                        }                           
                });
            });

現在,我嘗試從外部觸發此選擇框更改方法,但沒有成功,我觸發了2種方法,1.使用索引選擇選項,效果很好:

$('#select1 option')[5].selected = true;

2現在我想觸發change方法method但沒有成功,像這樣:

$('#select1').trigger('change');
or 
$('#select1').bind('change', function(){ ; });

它只是什么都不會觸發,為什么呢?

當用戶選擇一個選項時,將觸發更改事件。 通過jQuery val()方法將選項的selected屬性設置為true來設置值時,不會觸發該事件。 因此,您必須手動觸發更改事件。

您的密碼

$('#select1').trigger('change');

應該管用。 也許不是因為您的代碼引發了錯誤。 這可能發生在這個地方

$('#select1 option')[5].selected = true;

因為這里您不執行數組的范圍檢查。

更好的方法是按如下所示通過索引選擇所需的選項:

$('#select1 > :nth-child(6)').prop('selected', true);

如果沒有第六種選擇,這種方式的代碼就不會崩潰。

但是,根據您的示例構建的這種小提琴效果很好。

暫無
暫無

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

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