输入值未传递给ajax

时间:2016-02-01 15:10:28

标签: jquery ajax

我试图通过AJAX传递名称值并将alert值传递出去,同时将值存储在数据库中。出于某种原因,这个值没有在AJAX中被提取,我不知道为什么,因为我给了我的输入字段id name并在submit.js中引用它

<form method="post" id="submit_form">
    <input type="text" id="name" placeholder="username"><br>
    <input type="submit" id="save_button" value="Submit">
</form> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="" src="submit.js"></script>
// in submit.js...

$('#save_button').click(function(e) {
    var name = $('#name').val();
    e.preventDefault();

    $.ajax({
        data: name,
        type: "post",
        url: "submit.php",
        success: function(data) {
            alert("Data Save: " + data);
        }
    });
});

3 个答案:

答案 0 :(得分:1)

您需要为data的{​​{1}}属性提供键/值对。

要执行此操作,您可以使用对象:

$.ajax

或者,您可以data: { "name": name }, serialize()中包含的值。这将使jQuery根据指定表单中的所有字段的值创建一个适当编码的查询字符串。

form

最后你可以自己构建一个查询字符串 - 虽然这不是最佳实践,因为jQuery会在使用上述任何一种方法时为你编码值。

data: $('#submit_form').serialize(),

答案 1 :(得分:0)

更改data: name
data:{'name':name}

答案 2 :(得分:0)

这只是将所有表单字段值传递给ajax

$('#save_button').click(function(e) {

  e.preventDefault();

  $.ajax({
    data: jQuery('#submit_form').serialize(),
    type: "post",
    url: "submit.php",
    success: function(data){
      alert("Data Save: " + data);
    }
  });
});