jQuery选中的值始终为0

时间:2016-04-19 07:43:55

标签: javascript jquery html

我使用Laravel和一些jQuery进行Web应用。当我提交一个空表单时,我会重定向回到填充了旧值(form model binding)的页面,这些值都按预期工作。

问题在于jQuery部分。当无线电组的值为0(未选中)时,我有几个未显示的部分,并显示何时更改为1(已选中)。当我填写页面时,这工作正常,但如果我在表单中有验证错误,当我重定向时它会出错。

当我遇到表单错误,并且我被重定向回填入旧值的页面,并读取所选的无线电组值时,所有值仍为0.为什么val()即使收音机的选择值为1?

,也为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');一百万次,但在我的代码中不可能)

1 个答案:

答案 0 :(得分:1)

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

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

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

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