2014-11-24 71 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