jQuery选择的值始终为0

jQuery selected value always 0

本文关键字:选择 jQuery      更新时间:2023-09-26

我正在将Laravel与一些jQuery一起用于Web应用程序。当我提交一个空表单时,我会重定向回填充了旧值(form model binding)的页面,所有这些都按预期工作。

问题出在jQuery部分。当无线电组的值为0(未选中)时,我有几个部分没有显示,而当它变为1(选中)时显示。当我填写页面时,这很好,但当我重定向回表单时,如果表单中有验证错误,它会出错

当我有一个表单错误,并且我被重定向回填充了旧值的页面,并读取无线电组的选定值时,所有值仍然为0。为什么即使收音机的选定值为1,val()也为0?

var r4 = $('input[name="configtype"]');
var s4 = $('#comprehensive');
initsec(r4, s4);
function initsec(radio, togglesection){
    console.log(radio.val());
    //When being redirected back to the page with the radio selected at the value '1',
    //console.log still shows 0
    if (radio.val() == 1)
        {
            togglesection.toggle();
        }
    }

编辑

var r4 = $('input[name="configtype"]:checked');在这种情况下不能工作,因为我在代码中的其他地方也使用了单选字段,在那里我不仅应该得到检查值,而且应该得到检查的值,因此据我所知不会重复(因为我已经读了一百万次var r4 = $('input[name="configtype"]:checked');,但这在我的代码中是不可能的)

radio是所有无线电元素的集合,而不仅仅是选中的一个,因此调用.val()将返回集合中第一个元素的值。

您可以使用.filter()只选择选中的项目

console.log(radio.filter(':checked').val());

var r4 = $('input[name="configtype"]:checked');