将文本输入值发布到ajax

时间:2013-07-13 18:12:22

标签: jquery ajax forms

我有一个功能强大的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).

它没有为“why”返回任何内容。

有趣的是:如果我将变量更改为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 个答案:

答案 0 :(得分:8)

HTML代码中可能有另一个元素具有相同的id="why"。所以试着去搜索它。或者将上面输入的id更改为其他内容。

您可以尝试使用以下方法获取该输入值:

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

希望它有所帮助。