【问题标题】:jQuery ajax response not operating correctlyjQuery ajax 响应无法正常运行
【发布时间】:2011-02-23 16:49:45
【问题描述】:

好的,这令人沮丧...下面的代码“正确”工作,只要将电子邮件地址发送到 SaveEmail URL,并且每次我更改下拉列表时它都会正确保存。但是,无论我更改下拉列表中的值多少次,它都只会输出一次“成功”消息。返回的“数据”为“成功”。我想显示消息几秒钟,然后淡出。它在我第一次更改下拉列表时正常工作,之后发生更改并保存值,但不显示“成功”消息。

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="test@test.com">TEST</option>
</select><span id='SelectMsg'></span>

需要对我的代码进行哪些更改才能使其正常运行?感谢您的帮助。

【问题讨论】:

  • NewAddress 每次都成功到达服务器?
  • 是的,我在测试过程中做了很多更改,每次都检查数据库。

标签: asp.net jquery vb.net ajax


【解决方案1】:

一旦执行fadeOut,#selectMsg 的显示属性设置为none,所以你不会再看到它,除非你恢复它的可见性。 例如:

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

【讨论】:

  • 很好地关注实际问题,而不是被“还有什么”跟踪:)
  • 谢谢。我想这可以链接到“.html”之前的原始语句中。
【解决方案2】:

选择不正确 在 asp.net 中有几种不同的方法可以通过 jquery 进行选择,您应该尝试以下代码:

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

【讨论】:

  • 如果 OP 说的是真的,那是没有意义的。数据始终保存,因此选择必须正确。
  • @jAndy:那不是我。我只是缩进了代码,所以它的格式正确。
  • 我在以前的项目中使用过jquery,我不能用常用的方式选择,我不得不谷歌一点点找到一些技巧,但如果他使用的是VS2010,上面的代码是没用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多