2013-07-13 82 views
4

我有一個功能強大的AJAX帖子,效果很好。我的客戶請求了額外的文本輸入字段,而對於我來說,我無法得到它。腳本很長,所以我會給你相關的部分,希望它是一個語法問題。將文本輸入值發佈到ajax

HTML我輸入:

<input type="text" name="why" id="why" maxlength="70"> 

JavaScript調用

$(document).on("click", ".take-claim-link", function(){ 
var id= $(this).attr('data-id');  
var point= $(this).attr('data-point'); 
var val= $(this).attr('data-val'); 
var type = $(this).attr('data-type'); 
var why = $("#why").val(); 

var follow = document.getElementById("follow-" + id + "-"+ type); 
var followuser='0'; 
if (follow.checked) { 
    var followuser = "1"; 
} 


var takeurl = '/api/responseClaim.json'; 
var newPrice =''; 

var newData = $.ajax({ 
    type: "POST", 
    url: takeurl, 
    dataType: "json", 
    data: { point: point, claimId: id, type: val,why: why,follow: followuser } 
    }) 
(etc). 

不會返回任何的 「爲什麼」。

有趣的是:如果我將變量更改爲var why = 'sample why';它會通過。同樣,如果我將輸入更改爲<input type="text" name="why" id="why" maxlength="70" value="some value">,它會讀取它。所以我認爲問題在於我定義它的方式。

但是什麼?我也嘗試過var why = $("input#why").val();document.getElementById("why").value;

+1

請確保你沒有任何其他元素與'爲什麼'作爲'ID' –

+0

是的,當然。我是個白癡。謝謝。 – dilettante

回答

8

在您的HTML代碼中可能會有另一個元素與id="why"相同。所以嘗試搜索它。或者將上述輸入的ID更改爲其他內容。

您也可以選擇試圖獲取輸入值與:

var why = $('input[name="why"]').val(); 

希望它能幫助。

+0

當然。我是一個傻瓜。非常感謝。 – dilettante