Javascript没有从Ajax调用的表单onsubmit接收数据

时间:2014-02-20 01:26:30

标签: javascript jquery html ajax forms

每次输入3个参数,然后点击提交,我都会收到"name=&startDate=&endDate="的提醒。单击“提交”后,它不会更新$('#request')。有谁看到我可能会出错?

这是我的HTML:

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="match.js"></script>
<script src="Chart.js"></script>
</head>

<body>

<form id="request" onsubmit="match.js">
    <label>Name <input type="text" name="name" id="name" ></label>
    <label>Start Date <input type="date" name="startDate" id="startDate" ></label>
    <label>End Date <input type="date" name="endDate" id="endDate"  ></label>
    <input type="submit" value="Submit">
</form>

</body>
</html>

我的Javascript:

$(function(){
  $(function(e){
    $.ajax({
      url: 'match_api.php',
      type: 'post',
      data: $('#request').serialize(),
      dataType: 'json',
      success: function(data) {
          alert($('#request').serialize());
     });
     e.preventDefault();
  });
});

2 个答案:

答案 0 :(得分:3)

这是你的HTML:                              

<body>

<form id="request" onsubmit="match()">
    <label>Name <input type="text" name="name" id="name" ></label>
    <label>Start Date <input type="date" name="startDate" id="startDate" ></label>
    <label>End Date <input type="date" name="endDate" id="endDate"  ></label>
    <input type="submit" value="Submit">
</form>

</body>
</html>

和你的Javascript:

function match(){
    $.ajax({
      url: 'match_api.php',
      type: 'post',
      data: $('#request').serialize(),
      dataType: 'json',
      success: function(data) {
          alert($('#request').serialize());
     });
     e.preventDefault();
  };

答案 1 :(得分:1)

我不确定你在哪里学到了这个

onsubmit="match.js"

除了导致JavaScript错误之外什么都不做。它没有神奇地将JS文件绑定到函数。

如果要附加到提交事件,则需要执行

$(function(){
    $("#request").on("submit", function(e){
        $.ajax({
          url: 'match_api.php',
          type: 'post',
          data: $('#request').serialize(),
          dataType: 'json',
          success: function(data) {
              alert($('#request').serialize());
         });
         e.preventDefault();
    });
});

,HTML就是

<form id="request">