我正在使用必需的属性来检查我的表单上的模式,这是用户的发货信息等。我现在遇到了2个问题。必需属性在Safari或旧IE中不起作用。同样在地址模式中,如果有“。”让我们说“而不是北”,用户输入“N”。它出现了无效模式。使用javascript验证它会更好吗?此外,我可以在HTML中使用其他属性来验证它,因为我相信模式不需要用户启用javascript。
以下是我表单中代码的HTML部分:
<input type="text" name="first_name" required pattern="[a-zA-Z]{1,}" size="30"/>
<input type="text" name="last_name" required pattern="[a-zA-Z]{1,}" size="30"/>
<input type="text" name="address1" required pattern="[a-zA-Z0-9 ]{1,}" size="30"/>
<input type="text" name="address2" pattern="[a-zA-Z0-9 ]{1,}" size="30"/>
<input type="text" name="city" required pattern="[a-zA-Z]{1,}" size="30"/>
<input type="text" name="zip" required pattern="[a-zA-Z0-9]{1,}" size="30"/>
<input type="email" name="email" required size="30" value=""/>
<input type="text" name="telephone" required pattern="[0-9]{9,}" size="30"/>
<input type="submit" id="checkout" name="checkout" class="button" value="Checkout" />
答案 0 :(得分:0)
你应该使用javascript检查内部的内容,或者只是告诉用户你要求他输入&#34; North&#34;而不是&#34; N。&#34;。用户并不介意这些限制。关于所需属性的问题:使用javascript以及
答案 1 :(得分:0)
使用javascript的[a-zA-Z]
(或\w
)验证姓名/电子邮件/地址是一个坏主意™
您正在对有效的用户名做出一些非常有限的假设(所有严格的,甚至Unicode 不代表每个人的名字......)。
看看(例如)这里:http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/
例如,中国/阿拉伯语/ russion / etc女性的姓氏与美国人(在您的目标区域内)结婚(甚至认为bi-di文本......)。
此外,输入类型“电子邮件”是(如您所知)html5中的新内容。您可以提供回退(填充/填充/创建自己的)来验证电子邮件。然而..验证电子邮件已经很难做了,而且现在所有(新的)国际化(顶级)域名都变得更糟(如果不是不可能,不需要经常更新例程)列表仍在增长)。了解这一点,最终会导致即使是填充/填充(外部库)也难以正确验证有效的电子邮件地址。
最后(因为你也想在聊天时告诉加拿大),地址:
那么:加拿大魁北克省的CôteSaintLuc(只是一个例子)?
我是认真的吗? 是的,取决于您编码的内容(地区/受众/重要级别)。
如果你对它很好,并且理解(非常现实的)问题,那么一切都很好......只要你没有将它用于某些合法的政府税制等。 ..或航空公司预订网站......等。
然而...... 解决方案实际上很简单 :
希望这有帮助!