[英]HTML form: send data to javascript function
我有一個 html 頁面。 它有多種形式。
我想要一個通用函數,在提交任何表單后,它將獲取該表單的所有輸入並將其作為 JSON 發送到另一台服務器。
據我了解,我想要的是以下內容:
<form enctype="application/json" name="createStudentForm" onsubmit="sendForm()">
Student ID (must be 3 digit number):
<input type="text" name="student_id"><br>
Nickname:
<input type="text" name="student_nickname"><br>
<input type="submit">
</form>
然后:
<script>
function sendForm(){
console.log('sent form');
}
</script>
我的問題是:a) 為什么我提交時我的控制台沒有記錄這個? 當我使用 chrome 進行測試時,發送提交和 b) 后控制台為空,如何從 sendForm() 內部訪問表單的輸入? 我是否需要直接引用該表單,還是有一種方法可以在我調用它時將數據傳遞給 sendForm()?
跟進 Michael 所說的並使用一點 jquery,您可以非常輕松地完成這項工作。
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
function sendForm(form){
console.log('sent form: ' + $(form).serialize());
return false;
}
</script>
<body>
<form enctype="application/json" name="createStudentForm" onsubmit="return sendForm(this)">
Student ID (must be 3 digit number):
<input type="text" name="student_id"><br>
Nickname:
<input type="text" name="student_nickname"><br>
<input type="submit">
</form>
</body>
</html>
你可以試試這個腳本:
$(function() { var formHandler = function (e) { e.preventDefault(); // Avoid form submit var data = $(this).serializeArray(); data = JSON.stringify(data); // To JSON console.log(data); }; $('form').submit(formHandler); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> Form 1 <form> Field 1: <input name="field1"> Field 2: <input name="field2"> Field 3: <select name="field3"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit"> </form> <hr> Form 2 <form> Field 1: <input name="field1"> Field 2: <input name="field2"> Field 3: <select name="field3"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit"> </form> <hr> Form 3 <form> Field 1: <input name="field1"> Field 2: <input name="field2"> Field 3: <select name="field3"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit"> </form>
我們將提交事件附加到您頁面的每個表單並捕獲數據。 如果您的站點上有很多表單,請嘗試將事件附加到捕獲正確表單的body
(事件傳播):
$('body').on('submit', 'form', formHandler);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.