-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
私は「Uncaught TypeError:Google ChromeとFirefoxで未定義のonsubmitプロパティを設定できません。 –
」というフォームの 'form.onsubmit = ... 'の中で、' form'変数の値は 'undefined'です。それは間違いがあなたに言っていることです。 – Pointy