2010-05-25 45 views
2

好吧,這是令人沮喪的......只要將電子郵件地址發送到SaveEmail URL並在每次更改下拉列表時正確保存,下面的代碼就能「正確」工作。但是,無論多少次更改下拉列表中的值,它都只輸出一次「成功」消息。返回的「數據」是「成功」。我想將該信息顯示幾秒鐘,然後淡出。它在第一次更改下拉菜單時正常工作,此後發生更改並保存值,但不顯示「成功」消息。jQuery ajax響應運行不正常

jQuery代碼:

$('#AgentEmails').change(function() { 
    var NewAddress = $('#AgentEmails').val(); 
    $.post('SaveEmail.aspx', { email: NewAddress }, function(data) { 
    $('#SelectMsg').html("<b>" + data + "</b>").fadeOut(); 
    }); 
}); 

HTML代碼:

<select ID='AgentEmails' runat='server'> 
    <option value="[email protected]">TEST</option> 
</select><span id='SelectMsg'></span> 

什麼需要我的代碼進行更改,使這個正常工作?謝謝您的幫助。

+0

NewAddress每次都成功到達服務器? – jAndy 2010-05-25 13:26:58

+0

是的,我在測試過程中做了很多更改,並且每次都檢查數據庫。 – mmarceau 2010-05-25 13:35:06

回答

3

淡出後執行的顯示屬性#selectMsg設置爲無,因此除非恢復其可見性,否則不會再看到它。 例如:

$('#AgentEmails').change(function() { 
    var NewAddress = $('#AgentEmails').val(); 
    $.post('SaveEmail.aspx', { email: NewAddress }, function(data) { 
    $('#SelectMsg').show(); 
    $('#SelectMsg').html("<b>" + data + "</b>").fadeOut(); 
    }); 
}) 
+0

很好的關注實際問題,而不是旁邊的「什麼」:) – 2010-05-25 13:32:46

+0

謝謝。我想這可能會被鏈接到「.html」之前的原始聲明中。 – mmarceau 2010-05-25 13:37:46

0

選擇不發在asp.net correctely 有幾個不同的方式來進行選擇的jQuery你shoudl試試這個代碼:

$("*[id$='AgentEmails']").change(function() { 
    var NewAddress = $("*[id$='AgentEmails']").val(); 
    $.post('SaveEmail.aspx', { email: NewAddress }, function(data) { 
    $("*[id$='SelectMsg']").html("<b>" + data + "</b>").fadeOut(); 
    }); 
}); 
+0

如果OP說的是真的,那就沒有意義了。數據始終保存,因此選擇必須正確。 – jAndy 2010-05-25 13:28:44

+0

@Matt:用通用選擇器選擇是一個很大的nono:p – jAndy 2010-05-25 13:31:45

+0

@jAndy:那不是我。我只是縮進了代碼,以便格式正確。 – Matt 2010-05-25 13:32:45