2014-11-24 40 views
0

我想从使用jquery序列化的动态表单中获取用户输入。我的表单看起来像这样使用jquery序列化时从用户输入解析名称

 <form id="lookUpForm"> 
      <input name="q" id="websterInput" /> 
      <button onclick="webster(); return false;">Search</button> 
     </form> 

我想接受输入,并将其附加到websters字典URL的末尾来搜索单词。 http://www.merriam-webster.com/dictionary/ +(用户输入)

当你运行一个警报,看看有什么的“Q”值,你会得到

Q =输入

因此,例如,如果我把“猫”

警报会说q =猫。

我希望字符串只是用户输入的内容。但是,您需要为输入名称使用seralize。那么我怎样才能接受用户输入,并去掉'q ='部分。

编辑

根据要求,这里是我打电话的函数。注意。我必须使用serialize();这不是一个选项。

function webster() { 
    var stringHolder = $("#lookUpForm").serialize(); 
    alert(stringHolder); 
    $.ajax({ 
     type: 'GET', 
     crossDomain: 'true', 
     url: "http://www.merriam-webster.com/" + stringHolder, 
     success: function (data) { 
      console.log(data); 
      console.log("http://www.merriam-webster.com/" + stringHolder); 
     }, 
     error: function() { 
      alert("Failed to get dictionary data"); 
      console.log("http://www.merriam-webster.com/dictionary/" + stringHolder); 
     } 

    }); 


}; 
+0

如果你只有一个PARAM你可以只更换'Q ='或者是有可能,你有一个以上的PARAM? – twain 2014-11-24 15:04:07

+0

它可能有多个参数,这就是为什么我需要使用序列化。 – onTheInternet 2014-11-24 15:05:23

+0

好的,你可以添加你的'webster'功能到你的问题吗? – twain 2014-11-24 15:06:25

回答

0

val方法,你可以使用serializeArray()它只是访问。

然后做这样的事情,把你的串在一起,就像你想

var array = $("#lookUpForm").serializeArray(); 

$(array).each(function(){ 
    alert(this.value); 
}); 
+0

就是这样。谢谢! – onTheInternet 2014-11-24 15:28:32

1

您可以使用jQuery

function webster() { 
    var stringHolder = $("#lookUpForm").serialize(); 
    alert(stringHolder); 
    $.ajax({ 
     // (...) removed some code for brevity 
     error: function() { 
      alert("Failed to get dictionary data"); 
      console.log("http://www.merriam-webster.com/dictionary/" + 
      $('#websterInput').val()); // I suppose you want the user-input here 
     } 
    }); 
}; 
+0

因为我需要使用序列化来从表单中获取信息。 – onTheInternet 2014-11-24 15:05:56

+0

@onTheInternet请显示您的当前代码,因为它不是很清楚 – 2014-11-24 15:06:29

+0

对不起。新增功能。 – onTheInternet 2014-11-24 15:08:55