使用 jQuery 检查无线电时,检查是否选中无线电不起作用
Checking if radio is checked doesn't work when the radio is checked using jQuery
我需要根据需要动态设置文本区域,但它不想正常工作。JQuery 自己检查它,但无法检查它是否被选中。但是,当您在第二个收音机内单击时,文本区域始终是必需的。我尝试了很多次让它工作,但它仍然是错误的。我添加了"attr"和"removeAttr",因为我在stackoverflow上读到有时".prop('required',false);"不起作用,但仍然没有运气。
我对我的问题做了一个小提琴.jsFiddle
$(".parent-div").click(function() {
$(this).next().slideToggle();
var a = $(this).next();
$('.child-div').not(a).slideUp();
$(this).find("input").prop( "checked", true );
});
$("#my-radio").change(function() {
if(this.checked) {
$("#my-textarea").prop('required',true);
$("#my-textarea").attr('required');
}
else {
$("#my-textarea").prop('required',false);
$("#my-textarea").removeAttr('required');
}
});
你不需要 #my-radio
的更改事件。您可以在如下所示.parent-div
单击事件中执行此操作。
$(".parent-div").click(function () {
$(this).next().slideToggle();
var a = $(this).next();
$('.child-div').not(a).slideUp();
//i have added this
var checkbox = $(this).find("input");
checkbox.prop("checked", true);
$("#my-textarea").prop('required', checkbox.val() == 'second');
});
更新的小提琴
谢谢你,阿齐姆。用户adeneo也给了我一个解决方案,你可以在这里找到它:https://jsfiddle.net/h8bwqpyb/6/
$(".parent-div").click(function() {
$(this).next().slideToggle();
var a = $(this).next();
$('.child-div').not(a).slideUp();
var inp = $(this).find("input").prop("checked", true);
$("#my-textarea").prop('required', inp.attr('id') === 'my-radio');
});
这两种解决方案都很好用,但我最终选择了adeneo的解决方案,因为它不使用"价值"来工作。
非常感谢你们俩,伙计们!有好的一天!:)
相关文章:
- 角度 ng 检查不适用于无线电 - 2
- 获取检查输入无线电的标签
- 检查了多个无线电输入
- 已检查无线电的jQuery事件
- 在angularJS中取消后未检查无线电
- jQuery 不响应无线电检查
- 如何确定是否已以编程方式检查无线电
- 如果..无线电被检查警报
- 我的 JavaScript 无法正确检查表单的无线电输入
- 使用 jQuery 检查无线电时,检查是否选中无线电不起作用
- 反应无线电输入不检查
- 点击按钮应检查谷歌表单上的无线电输入
- Angular Js-检查内部无线电输入时格式化标签
- 如何检查一个“特殊的无线电盒子”;组“;使用JavaScript
- 无线电/复选框按钮”;oncheck”;使用javascript检查/选择时的事件
- jQuery无线电检查命中错误语句
- 如何在javascript中检查/勾选无线电输入
- 在我的表单中,我检查了输入无线电和图像更改,但我填充输入文本和图像更改回来
- 使用按钮检查两个或多个无线电组
- 2号无线电检查,重定向到特定链接