-2
我試過搜索,但找不到任何有助於回答我的問題的東西。我試圖將表單數據發送到JSON格式。同時也做一個console.log看看如何輸出JSON並將其設置到服務器。index.html:507 Uncaught TypeError:無法設置未定義的屬性'onsubmit'(...)
以下是我的代碼。謝謝你的幫助!
<form enctype='application/json' style="text-align: center" method="post" name="form">
<input name="firstname" value="" type="text" class="form-control" placeholder="First Name">  
<input name="lastname" value="" type="text" class="form-control" placeholder="Last Name">  
<input name="email" value="" type="text" class="form-control" placeholder="Email">  
<select name="category" value="" class="form-control">
<option selected disabled value="choose">--Category--</option>
<option value="furniture">Furniture</option>
<option value="books">Books</option>
<option value="music">Music</option>
</select>  
<input name="itemName" value="" type="text" class="form-control" placeholder="Item Name">  
<input name="itemDesc" value="" type="text" class="form-control" placeholder="Item Description">  
<input name="priceInput" value="" type="text" class="form-control" placeholder="Price ($00.00)">  
<div class="modal-footer">
<button name="submit" value="" onclick ="onsubmit()" class="btn btn-default">Submit</button>
</div>
</form>
<script>
var form;
form.onsubmit = function (e) {
//stop regular form submission
e.preventDefault();
//collect the form data
var data = {};
for (var i = 0, ii = form.length; i <ii; ++i) {
var input = form[i];
if (input.name) {
data[input.name] = input.value;
}
}
//construct an HTTP request
var xhr = new XMLHttpRequest();
xhr.open(form.method, form.action, true);
xhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8');
//send the collected data as JSON
xhr.send(JSON.stringify(data));
console.log(JSON.stringify(data));
xhr.onloadend = function() {
//done
};
};
</script>
你聲明瞭變量'form',但是你沒有初始化它。 – Pointy
Im接收「Uncaught TypeError:無法在谷歌瀏覽器和火狐瀏覽器中設置undefined屬性'onsubmit' –
沒錯,因爲在form.onsubmit = ...語句中,變量form的值是undefined。這正是錯誤告訴你的。 – Pointy