首页 文章

每页有多个表单的输入元素之间的依赖关系

提问于
浏览
0

我正在使用数据库生成多个表单 . 表单中的某些输入字段具有标记

dep =“XY”

其中XY是从属输入元素的名称 .

例:

<input type =“checkbox”name =“R5”id =“c1”dep =“R6”> <input type =“radio”name =“R6”value =“V1”>

如果启用复选框R5,则激活单选按钮R6

目前我正在使用此jquery代码来启用/禁用元素:

function onChangeInputRadioCheckboxDependencies() {
var inputs = $('input');
inputs.change(function() {
    inputs.each(function() {
        var dep = $(this).attr('dep');
        if ( typeof dep != 'undefined') {
            var group = $(this).find('input[name=' + dep + ']');
            if ($(this).is(':checked')) {
                group.each(function() {
                    group.removeAttr('disabled');
                });
            } else {
                group.each(function() {
                    group.attr('disabled', true);
                    group.prop('checked', false);
                });
            }
        }
    });
});
}

如果页面上只有一个表单,则没有问题 . 但是,如果在所有表单中启用/禁用了两个或更多元素,因为所有输入都以每种形式连续编号 .

是否有可能找到位于相同形式的元素?谢谢你的帮助 :-)

1 回答

  • 1

    尝试

    $(document).ready(function () {
        $('form').on('change', 'input[dep]', function () {
            var dep = $(this).attr('dep');
            var group = $(this).closest('form').find('input[name=' + dep + ']');
            if ($(this).is(':checked')) {
                group.prop('disabled',false);
            } else {
                group.prop('disabled', true);
                group.prop('checked', false);
            }
        });
    });
    

相关问题