3

我在尝试找到解决方案时遇到了麻烦,而无需求助于 php 语句或 javascript。这是因为这个想法看起来很简单,我很确定必须有一种方法可以在不使用两者的情况下做到这一点。

我有一个注册表,此表上的某些字段是必需的。但我有点进退两难,因为我要求用户输入至少一个电话号码,以便在他们的订单出现问题时联系他们。

所以我有 3 个字段,“电话”“手机”“传真”

我想做的是让用户必须输入电话或手机号码才能完成表格。

但是,我想我的问题是......是否可以以required某种方式使用该属性来达到这种效果?

以下是这些字段的 html:

<li>
<label for="phone">Phone:</label>
<input type="tel" name="phone" id="phone" value="'.htmlout($phone).'" required aria-required="true" placeholder="0317021101"title="Please enter your home or work number here. You must enter either a phone, or mobile number." maxlength="20"/>
</li>
<li>
<label for="mobile">Mobile:</label>
<input type="tel" name="mobile" id="mobile" value="'.htmlout($mobile).'" placeholder="0827564829" title="Please enter your mobile number here. You must enter either a mobile, or phone number." maxlength="20"/>
</li>

在此方面的帮助、意见或建议将不胜感激,谢谢!

4

4 回答 4

3

有两个电话号码字段不是更简单,其中第一个是必需的吗?解释似乎说这两个数字中的任何一个都可以是手机号码或其他东西,那么为什么不让它们在结构上对称呢?

The first could be labeled “Primary phone (required)” and the other “Secondary phone (optional)”. These are rather long for labels, but in my experience, too short labels (like “Phone” and “Alternate phone”) tend to make some users re-type the first number...

于 2012-01-04T17:38:05.913 回答
2

不幸的是,required仅适用于单个字段而不是字段组(即使它们具有相同的name),因此仅使用 HTML5 验证无法做到这一点。

演示:http: //jsfiddle.net/ka7kC/

无论如何,您不应该依赖客户端验证,您还必须在服务器端进行验证。此外,并非所有浏览器都支持 HTML5 验证。

如果您使用的是 jQuery,我建议客户端使用久经考验的验证插件:

于 2012-01-04T17:30:07.710 回答
1

如果确实需要,则只有服务器端验证脚本才能实际执行它。

Javascript 确实是在客户端进行复杂(即模式匹配以外的任何事情)验证的唯一其他选择。

于 2012-01-04T17:31:17.497 回答
0

“必需”属性在大多数版本的 IE 和某些版本的 Safari 中不起作用,因此您需要以另一种方式验证您的输入。

于 2012-01-04T17:32:17.787 回答