【发布时间】:2013-11-08 21:45:07
【问题描述】:
我陷入了奇怪的行为:对于$().serialize() 的一种形式,方法不起作用(返回空字符串)。仅在 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');
});
});
});
如果我在 Opera 调试器中查看 var post_data = $(this).serialize();,$(this) 包含普通表单对象,但 post_data 是 ""。
这是我可以错过的东西吗?
【问题讨论】:
标签: jquery forms serialization opera