javascript - jQuery 选择值始终为 0

标签 javascript jquery html

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

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

当我出现表单错误时,我被重定向回填充了旧值的页面,并读取了单选组的选定值,所有值仍然为 0。为什么 val( ) 0,即使 radio 选择的值为 1?

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'); 在这种情况下无法工作,因为我也在我的其他地方使用 radio 场我不应该只获取检查值而不是检查值的代码,因此据我所知不会重复(因为我已经阅读了 var r4 = $('input[name="configtype"] :checked'); 一百万次,但这在我的代码中是不可能的)

最佳答案

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

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

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

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

关于javascript - jQuery 选择值始终为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36711751/

相关文章:

javascript - 使用 JavaScript 时,如果某个值是 "not defined",这意味着什么?

jQuery $.when 带有函数

javascript - Hapi.js View 不加载 css 文件

javascript - Access-Control-Allow-Origin 不允许 Origin null

javascript - AngularJS 自定义顺序和限制

javascript - 单击鼠标更改 Canvas 元素属性

javascript - Jquery - 使用 [aehlke] 多标签插件动态删除标签并添加标签

javascript - 使用 javascript 或 jquery 按类名自动单击链接?

javascript - 如何使用 jquery 或 javascript 在超链接上一段时间后撤消 event.preventdefault

javascript - 将 HTML/JS 变量传递给 Python