如何在HTML表单中创建两组单选按钮,以及在a组中的更改何时会在B组中更改
How can I create two groups of radio buttons in a HTML form and when change in A Group will change in B Group?
我需要创建两个带有单选按钮的表单,如下所示,然后,当更改选中时,我需要在第二个表单(jquery或javascript)中自动更改:
<form id="form-a" name="form-a">
<input type="radio" name="name-a" id="id-a" value="Yes" checked="checked" />
<input type="radio" name="name-b" id="id-b" value="No" />
</form>
<form id="form-b" name="form-b">
<input type="radio" name="name-c" id="id-c" value="Yes" checked="checked" />
<input type="radio" name="name-d" id="id-d" value="No" />
</form>
只需更改单选按钮上的name
属性值来对它们进行分组,然后只需添加一个事件侦听器来侦听更改。
下面是一个例子。
var radioBtns = document.querySelectorAll("input[type=radio]");
function radioChangeHndl(evt) {
radioBtns.forEach(function(radioBtn) {
radioBtn.checked = '';
if(radioBtn.value === this.value) {
radioBtn.checked = 'true'
}
}.bind(this))
}
radioBtns.forEach(function(radioBtn) {
radioBtn.addEventListener('change', radioChangeHndl);
});
<form id="form-a" name="form-a">
<input type="radio" name="name-a" id="id-a" value="Yes" checked="checked" />
<input type="radio" name="name-b" id="id-b" value="No" />
</form>
<form id="form-b" name="form-b">
<input type="radio" name="name-c" id="id-c" value="Yes" checked="checked" />
<input type="radio" name="name-d" id="id-d" value="No" />
</form>
编辑:更改HTML和JS。你只需要把类添加到Radiobuttons。经过Firefox, Chrome和IE 11的测试。也许它不工作,因为jquery没有加载?如果你在Javascript-Part中添加了jquery,它就可以工作了。
我的解决方案是双管齐下。点击form-a和form-b
HTML:我更改了分组的按钮名称。JQuery选择器是我添加的类名。
<body onload="bodyLoad()">
<form id="form-a" name="form-a">
<input type="radio" class="radioA" name="name-a" id="id-a" value="Yes" checked="checked" />
<input type="radio" class="radioB" name="name-b" id="id-b" value="No" />
</form>
<form id="form-b" name="form-b">
<input type="radio" class="radioA" name="name-c" id="id-c" value="Yes" checked="checked" />
<input type="radio" class="radioB" name="name-d" id="id-d" value="No" />
</form>
JS:我决定使用click event。
function bodyLoad () {
$("input:radio").click(function() {
var myClass = $(this).attr("class");
$("input:radio").prop('checked',false);
$("." + myClass).prop('checked',true);
});}
相关文章:
- 表单不会通过ajax提交
- Ajax正确发布表单,但不会返回成功数据
- 单击表单中的按钮会导致页面刷新
- 表单中的数据不会传递给提交函数-使用Angular
- 提交表单时,Javascript(JQuery)不会在文本区域中填充内容
- Javascript不会验证表单
- HTML/Javascript表单会自动重置
- 将HTML表单发布到iframe会导致浏览器历史记录出现问题
- 使用jquery添加到表单内部表中的元素不会过帐
- Slding表单不会一次显示一个表单
- 表单提交没有'如果为空,则不会显示错误消息
- 使用Backbone在模型更改时渲染表单会导致表单UI错误
- 表单元素上的jQuery focusout事件即使在单击子元素时也会被触发
- 当在一个表单中进行更改时,ng-disabled 会触发所有表单验证
- 表单中的 jQuery DOM 不会在 for 循环中更新
- 由于按钮的利益冲突,表单不会提交
- 提交表单会触发 ajax 调用,该调用会在成功时发布到操作页面
- AngularJS不会从对象中删除表单
- JavaScript确认何时在表单中选择动态HTML字段
- Javascript 事件,用于了解用户何时更改表单上的某些内容