使用 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 检查收音机时,检查收音机是不是已检查不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 不响应单选检查

Angular - 如何强制在页面加载时检查收音机

即使正在检查其中一个收音机,表单仍然返回 false

无效时 JQuery 验证插件单选按钮“错误显示”

使用 jquery 在收音机上单击或更改事件

如何使用jquery获取输入类型?