2014-02-20 33 views
1

每當我輸入3個參數,然後點擊提交,我會收到"name=&startDate=&endDate="的提醒。點擊提交後,它不會更新$('#request')。有沒有人看到我可能會出錯?Javascript沒有從窗體onsubmit接收Ajax呼叫數據

這裏是我的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(); 
    }); 
}); 

回答

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"> 
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(); 
    };