【发布时间】:2019-10-14 20:39:52
【问题描述】:
我想在无线电输入字段中添加required 属性,这是我的代码
<!doctype html>
<html>
<head>
<meta charset='utf-8'>
<title>test radio</title>
<style>
div.radio{
background-color:silver;
}
</style>
</head>
<body>
<form action='procesPost.html' method='POST'>
<div class='radio'>
<input type='radio' required name='test' value=1>
<input type='radio' required name='test' value=2>
</div>
<input type='SUBMIT' value='submit'>
</form>
</body>
</html>
效果很好,我必须选择一个无线电来提交,但是,如果我想禁用一个无线电,required 约束将不起作用
<!doctype html>
<html>
<head>
<meta charset='utf-8'>
<title>test radio</title>
<style>
div.radio{
background-color:silver;
}
</style>
</head>
<body>
<form action='procesPost.html' method='POST'>
<div class='radio'>
<input type='radio' required name='test' value=1>
<input type='radio' required disabled name='test' value=2>
</div>
<input type='SUBMIT' value='submit'>
</form>
</body>
</html>
现在,即使我没有选择任何电台,我也可以提交表单。 我想知道为什么会发生这种情况,我该如何解决这个问题?
我在 FierFox 32.0.3、RHEL6.2 中测试了我的代码
【问题讨论】:
-
因为你已经禁用了这个字段,而不是
disabled使用readonly -
你试过不把 required 放在禁用的组件上吗?
-
我在 Firefox 35 中测试了您的第二个代码(逐字),并且尝试在不选择单选按钮的情况下提交表单会导致 HTML5 表单验证消息,说我需要选择其中一个选项。因此,要么 Firefox 32 有一个奇怪的错误,要么在您测试时有其他代码干扰。
-
删除了我的答案,因为我意识到我无法复制您的问题,只有我的“解决方案”。您是否尝试过从禁用的无线电输入中删除所需的属性? required 属性只需要出现在同一组中的一个单选元素上,整个组都是必需的(即必须选择其中一个选项)。根据规范,元素必须是可变的(即未禁用)才能应用所需的属性。工作小提琴:jsfiddle.net/98a53t9w
-
@PHeiberg 我发现我无法在 Windows、Chrome 中复制这个问题,所以也许它只适用于 Red Hat 中的浏览器,或者它只适用于 Firefox?
标签: html