2010-05-25 44 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