作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我陷入了奇怪的行为:对于其中一种形式 $().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
是 ""
。
这里有什么我可以错过的吗?
最佳答案
问题似乎是输入的名称“length
”,请选择其他名称。
我猜这与built-in property "length"有冲突一个表格。
jQuery 文档中有一条注释: 表单及其子元素不应使用与表单属性冲突的输入名称或 ID,例如提交、长度或方法。名称冲突可能会导致困惑的失败。
关于jquery - .serialize() 不适用于 Opera 中的特定形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869047/
我是一名优秀的程序员,十分优秀!