使用HTML5输入类型和jQuery

4

我有一个表单,其中包含以下字段(这个字段只是其中的4个之一)

<input type="email" name="email" id="email" size="30" class="text-input" />

如果我在jQuery中使用这个,表单将按预期工作:
var dataString = 'name='+ name + '&email=' + email + '&message=' + message + '&ip=' + ip + '&date=' + date;

然而,如果我使用此方法缩短代码,则在提交时完全忽略电子邮件输入。
var dataString = $('#contact').serialize();

这是一个bug还是有什么我没看见的东西?这两者有什么区别?如果我将电子邮件输入改为“text”,那么表单就可以使用serialize了。

使用jquery 1.6.0版本。


1
$('#contact').serialize(); 执行后,dataString 的值是什么?它与手动创建的字符串相比如何? - George Cummins
乔治,所有的值都是正确的,除了它遗漏了电子邮件值。 - Brad
1个回答

3

最近我也遇到了同样的问题,后来发现我正在使用jQuery 1.3.2!

升级到1.6.2(最新版本)解决了这个问题。

我怀疑这个更新版本升级了serialize函数以识别新的HTML5输入类型。


2
你说得对,这个问题已经被修复了,但它是在 jQuery 1.4 中更新的,因此如果使用1.6.0版本,这应该对操作者有效。 - Nick Craver
1
当然,这就解释了为什么它当然修复了我的代码,但对OP没有起作用。我猜值得尝试1.6.2版本,尽管从你的说法中看来不会有任何区别。 - Ian Devlin
好的,我会更新。感谢大家的讨论。我正在尽可能使用所有的HTML5元素。 - Brad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接