簡體   English   中英

Ajax成功后不會觸發JQuery.append()

[英]JQuery.append() after ajax success is not triggered

我的主意大為尋找問題的原因和解決方案。 我知道我想念一些東西,但我不知道它在哪里。 我的目標是在下拉列表更改后進行ajax調用,然后在select multiple中添加append選項。

這是我所擁有的:

$(document).ready( function(){
    $('#myselect').append("<option value='test1' selected>Test1</option>"); //this works

    $("#mydropdown").on('change', function(){
        $.ajax({
            type: "POST",
            url: "somepage.php",
            data: $("#someForm").serialize(),
            success: function(msg)
            {   
                alert("Hello World"); //this is triggered
                //below line of code does not work
                $('#myselect').append("<option value='test3' selected>Tes3</option>");
            }
        });
    });
});

為什么會這樣呢?

所以我已經解決了我的問題。 我在選擇周圍放置了一個具有特定ID的div,並將其初始化,該ID名為theDiv。 然后在我的AJAX請求中

$( "#theDiv" ).empty(); //empty the diev so that select will be removed
//append select
$("#theDiv").append('<select multiple="multiple" id="myselect" name="myselect[]"><option>Some option</option></select>');
InitalizeMultiSelect(); //re-initialize the multiSelect

現在對我來說一切正常。 可能效率不高,但似乎沒有找到任何方法來取消對multiSelect的初始化,因此我認為這對我來說是最好的解決方案。

感謝您一直以來的幫助。

編碼

$('#myselect').append("<option value='test3' selected>Tes3</option>");

對我來說似乎還可以。 但是例如檢查我給你的兩個建議

1)首先嘗試

更改"<option value='test3' selected>Tes3</option>";

'<option value="test3" selected>Tes3</option>'

2)也嘗試使用selected='selected'

可能也可能導致問題

我誤解了myselect和mydropdown是相同的下拉列表。

抱歉,您的代碼沒問題。

do one thing, try to remove the class of the #myselect(if any class is there) to see if your code works

暫無
暫無

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

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