【发布时间】:2019-05-26 00:05:35
【问题描述】:
我正在处理用户首先在单选按钮上选择“美国”或“国际”的表单。根据选择的国家/地区,电话输入字段应要求输入 10 位数的美国号码或具有不同模式的国际电话号码。
我正在使用带有必需属性和正则表达式模式的原生 HTML 验证。目前我有一个美国号码的占位符、模式和标题属性。
<form>
<div>
<fieldset>
<legend>Country</legend>
<p>
<input type="radio" name="country" id="usa" value="usa" required />
<label for="usa">USA</label>
</p>
<p>
<input type="radio" name="country" id="int" value="int" required />
<label for="int">International</label>
</p>
</fieldset>
</div>
<div>
<label for="telephone">Telephone</label>
<input
type="tel"
name="tel"
id="tel"
placeholder="123 456 7890"
required
pattern="(?:\d{1}\s)?\(?(\d{3})\)?-?\s?(\d{3})-?\s?(\d{4})"
title="A valid US 10 digit phone number is required."
/>
</div>
<button id="submit" type="submit">Submit</button>
</form>
如何实现国际号码的占位符、模式和标题?
我可以在 HTML 中为每个 div 设置两个 div,并根据单选按钮的选择使用 JS 显示它们。或者,我可以保留 HTML 并插入 HTML 或使用 JS 进行国际选择的属性值(如果已选择)。但我想知道如果 JS 被禁用或不可用,是否有更好的方法可以工作或至少可以接受。
【问题讨论】:
标签: javascript html forms validation html5-validation