在IE中使用新的html5表单属性序列化失败
Serialize fails in IE with new html5 form attribute
由于某种原因,对于我尝试序列化的表单,serialize返回一个空字符串。
两个相同的表单,其中一个具有新的html5 form属性:
<form id="foo"></form>
<input form="foo" type="text" placeholder="cat" value="cat" name="cat" id="cat" />
<form id="bar">
<input type="text" placeholder="dog" value="dog" name="dog" id="dog" />
</form>
在这两个上运行serialize,其中一个返回正确,新的html5表单返回一个空字符串。
我希望我正在做一些愚蠢的事情,因为这对我来说是一个主要问题,因为我无法控制这些表单是如何编写的。我只有javascript钩子与这个CMS我正在使用。
序列化:
console.log($('form#foo').serialize());
console.log($('form#bar').serialize());
这在我测试过的所有其他浏览器上都可以正常工作,但在ie, 8,9,10或11中不行!
编辑:我刚刚检查了:http://www.w3schools.com/html/html5_form_attributes.asp,对IE的支持不存在…有人找到破解方法了吗?
: http://jsfiddle.net/875dks8c/5/
修复jQuery:
而不是更传统的在整个表单上序列化。根据jQuery,可以将单个表单元素序列化为。有了这个,我找到了输入选择器。从那里,我所要做的就是使用表单id作为选择器的一部分,一切都很好。
$(':input[form="foo"]').serialize();
// returns cat=cat
测试:ie8-11
MDN文档没有确认与IE的兼容性,并且MSDN文档没有在输入中引用form属性。
所以我猜IE还不支持这个属性,你将不得不等待(并希望)在IE12中实现,或者不依赖于这个属性。
相关文章:
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- html5拖放文件-在提交整个表单时上传
- 使用Javascript表单提交所需的HTML5
- Javascript - 根据表单选择切换 html5 required=“” 属性
- 通用 jQuery,用于在 HTML5 验证后禁用所有表单上的提交按钮
- 当以表单形式提交时,是否可以在PHP中访问新的数据* HTML5 / Javascript值?
- jQuery.show()调用中弹出HTML5表单验证错误
- 当用HTML5+JS+PHP设计发送到电子邮件的表单时,需要采取哪些良好的安全预防措施
- Flash Professional HTML5 Canvas:是否可以在HTML表单和Canvas之间共享数据
- html5表单工作不正常
- HTML5表单验证
- HTML5两个表单将分别打印出来
- 即使表单无效,也会调用HTML5表单提交处理程序
- javascript、html5表单.为什么不;t这项工作
- 如何在使用JavaScript submit()函数时运行HTML5表单验证
- HTML5,CSS3,PHP联系人表单不发送信息+添加必填字段
- 我们是否可以访问 UA 应该为 HTML5 表单 API 维护的无效控件列表
- 如何检查浏览器对 HTML5 表单属性的支持
- 检查submit()上表单HTML5必需的属性
- 登录表单HTML5和jquery