【问题标题】:How to pass $("#MyInputTag").val to my Ajax call and keep that value for later use如何将 $("#MyInputTag").val 传递给我的 Ajax 调用并保留该值以供以后使用
【发布时间】:2014-02-21 21:45:29
【问题描述】:

如何使用我的 Ajax 函数发送 $("#query").val())

如果我将 Ajax 调用放在 $(document).ready(function() 中,我的代码将不再工作(脚本无法启动)。 => 我可以在下一页上看到“test123”字符串,但是如果我在“查询”Input_Field 中输入一些内容,然后单击我的链接 href(指向相同的位置),输入字段将被重置并松动我的价值“查询”... 请帮帮我:(谢谢

$(document).ready(function() {

$("#completed").live('click', function() {
alert($("#query").val());

});

  $.ajax ({ 

url: 'http://localhost:3000/user/updateattribute',
data: { chosenformat: 'test123' , query: $("#query").val() } ,
type: 'POST',
success: function()
{
    alert ('success ' );
    return false;   }
});

});

【问题讨论】:

  • 它会提醒什么吗?
  • 如果您通过重新加载位置来刷新页面,您将丢失输入中填写的所有数据。是你的问题吗?你似乎在这里问了两个不同的问题。你能把你的帖子写得更清楚吗?
  • @RUJordan 是的,它会提醒我的 input_field 值,但是我想在我的控制器中看到它(所以我需要将它传递给我的 Ajax 调用)问题是 .ready() 和 .ajax( ) 和它们的变量是分开的(除非我们将它们设为全局?但我猜这很难看^^) A.Wolff 如果这还不够清楚,请告诉我。如果没有,我明天会详细说明! :)

标签: javascript jquery ruby-on-rails ajax


【解决方案1】:

// 不再使用这个 $(document).ready(function() {

$(function() {
       event.preventDefault();
       // live is no longer used use on..
       $("#completed").on('click', function() {
       console.log($("#query").val()); 
       // alerts are annoying learn to use console  
});

【讨论】:

  • api.jquery.com/live 参见注释 从 jQuery 1.7 开始,不推荐使用 .live() 方法。使用 .on() 附加事件处理程序。旧版本 jQuery 的用户应该使用 .delegate() 而不是 .live()。
  • 这取决于 1. 使用的 jQuery 版本。此外,它只会消除警报,ajax 仍然可以工作,并且$(document).ready() 也不会被弃用,您使用的只是编写相同代码的更短方式。
  • 只有 .live 被弃用,我同意。只是更短,打字,如果你有一个包含大量数据的循环,警报可以 DOS 你自己的代码。
  • alerts 仅用于调试 :) 我将尝试使用 .on 而不是 .live - 干杯!
  • 我可以在 JQuery 1.4.3 中使用 'bind',这很好:stackoverflow.com/questions/10912346/… 恐怕这对我的 Ajax 调用没有帮助 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 2019-09-03
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
相关资源
最近更新 更多