私は奇妙な動作で立ち往生しています:フォーム$().serialize()
メソッドの1つが機能しません(空の文字列を返します)。Opera のみ (Linux 12.16)。Android の Chromium、FF、Opera で正常に動作します。
フォームは
<form id="new-story-form" role="form" >
<div class="form-group">
<label for="txt-storyname" class="control-label">Story name</label>
<input type="text" name="name" class="form-control" id="txt-storyname" required="required">
</div>
<div class="form-group">
<label for="num-storylength" class="control-label">Story length</label>
<input type="number" name="length" class="form-control" id="num-storylength" value="20" min="10" max="500" required="required">
</div>
<div class="form-group">
<button type="submit" class="btn btn-default">Начать</button>
</div>
</form>
送信用の Javascript は次のとおりです。
$("#new-story-form").submit(function (e) {
e.preventDefault();
var post_data = $(this).serialize();
console.log(post_data);
$.post("/post", post_data ,function (data) {
console.log(data);
show_message("S", 'success');
var update = setTimeout(function () {
location.reload();
}, 1000);
}).fail(function (err) {
$.each(err.responseJSON, function (index, value) {
console.log(index, value);
show_message(index + ' - ' + value, 'danger');
});
});
});
var post_data = $(this).serialize();
Operaデバッガーで見ると、$(this)
通常のフォームオブジェクトが含まれていますがpost_data
、""
.
ここで見逃すことができるものはありますか?