使用 jQuery 检查收音机时,检查收音机是不是已检查不起作用
Posted
技术标签:
【中文标题】使用 jQuery 检查收音机时,检查收音机是不是已检查不起作用【英文标题】:Checking if radio is checked doesn't work when the radio is checked using jQuery使用 jQuery 检查收音机时,检查收音机是否已检查不起作用 【发布时间】:2016-05-29 04:21:50 【问题描述】:我需要根据需要动态设置textarea,但它不想正常工作。 JQuery 自己检查它,但不能检查它是否被检查。但是,当您在第二个单选框内单击时,总是需要 textarea。我尝试了很多次让它工作,但它仍然是错误的。我添加了“attr”和“removeAttr”,因为我在***上读到有时'.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');
);
【问题讨论】:
attr
在分配时接受 2 个参数...
只要设置了属性,就不需要设置属性了,你怎么检查textarea是不是required
,你是想提交表单,还是只看html ?
在页面上我将发送表单,但现在我需要让它工作。当我想发送“First”并且 textarea 是“必需的”时,它想在那里写一些东西。这就是为什么我想动态地改变这个属性。
已经回答了一个类似的问题:***.com/questions/6654601/…
当然 -> jsfiddle.net/h8bwqpyb/6
【参考方案1】:
您不需要#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');
);
UPDATED FIDDLE
【讨论】:
【参考方案2】:谢谢你,Azim。 用户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 的解决方案,因为它不使用“价值”来工作。
非常感谢你们,伙计们! 祝你今天过得愉快! :)
【讨论】:
很高兴为您提供帮助。两种解决方案都是同一类型。以上是关于使用 jQuery 检查收音机时,检查收音机是不是已检查不起作用的主要内容,如果未能解决你的问题,请参考以下文章