Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在选择更改时动态禁用输入_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在选择更改时动态禁用输入

Javascript 在选择更改时动态禁用输入,javascript,jquery,html,Javascript,Jquery,Html,我有一个初始html代码,它创建了一个选择和输入以及一个按钮: <div class="form-group"> <div class="table-responsive"> <table class="table table-bordered" id="dynamic_field"> <tr> <td>

我有一个初始html代码,它创建了一个选择和输入以及一个按钮:

<div class="form-group">
        <div class="table-responsive">
            <table class="table table-bordered" id="dynamic_field">
                <tr>
                    <td>
                        <select class="form-control name_list" name="product[]" id="prod_1" required="required">
                            <option value="" selected="selected">Select ...</option>
                            <option value="on">ON</option>
                            <option value="off">OFF</option>
                        </select>
                    </td>
                    <td><input type="number" name="qte[]" id="qte_1" placeholder="Qte" class="form-control name_list" required="required"/></td>
                    <td>
                        <a name="add" id="add" class="btn btn-success">Add More</a>
                    </td>
                </tr>
            </table>
        </div>
    </div>

您可以使用正则表达式从ID中获取任何数字,并使用该数字选择复选框

$(document).on('change', '[id^=prod_]', function () {
    var v = this.value;
    var n = this.id.replace(/\D+/,'')

    $('#qte_' + n).prop('disabled', v === 'off');
});
$document.readyfunction{ var i=1; $“添加”。单击函数{ i++; $'dynamic_field'。追加 + + + “选择…”+ “开”+ “关”+ + + + + “X”+ + ; }; $document.on'click','btn_remove',函数{ var button_id=$this.attrid; $'row'+按钮id+。删除; }; $document.on'change','id^=prod_]',函数{ var v=该值; var n=this.id.replace/\D+/, $'qte_u'+n.prop'disabled',v=='off'; }; }; 选择 在…上 关 添加更多 您根本不需要ID,只需处理所有name='product[]'选择的更改,然后在同一行中找到输入[name='qte[]']:

$(document).on("change", "select[name='product[]']", function() {
    var $this = $(this);
    $this.closest("tr").find("input[name='qte[]']").prop("disabled", $this.val() == "off");
});
如果行中只有一个输入,您可以根据需要关闭[name='qte[]']部分

实例:

$document.onchange,选择[name='product[]',函数{ var$this=$this; $this.closesttr.findinput[name='qte[]'].propdisabled,$this.val==off; }; 选择 在…上 关 添加更多 选择 在…上 关 添加更多 选择 在…上 关 添加更多 尝试在change函数上使用classname而不是id。创建唯一id不是一个好主意

用于从父元素中查找最近的选择器 用于选择内部元素 $document.on'change','name_list',函数{ var x=$this.val; 如果x==关{ $this.closest'td'。next'td'。查找'input'。prop'disabled',true; }否则{ $this.closest'td'。next'td'。find'input'。prop'disabled',false; } }; $document.readyfunction{ var i=1; $“添加”。单击函数{ i++; $'dynamic_field'。追加 + + + “选择…”+ “开”+ “关”+ + + + + “X”+ + ; }; $document.on'click','btn_remove',函数{ var button_id=$this.attrid; $this.closest'.row'.remove; }; }; 选择 在…上 关 添加更多
我没有真正理解你的代码,但我尝试了一下,这里有一个语法错误var n=this.id.replace\D,;如果有多行,请确保在行中的按钮上修复id=add。文档中不能有多个id=add。
$(document).on('change', '[id^=prod_]', function () {
    var v = this.value;
    var n = this.id.replace(/\D+/,'')

    $('#qte_' + n).prop('disabled', v === 'off');
});
$(document).on("change", "select[name='product[]']", function() {
    var $this = $(this);
    $this.closest("tr").find("input[name='qte[]']").prop("disabled", $this.val() == "off");
});