单击复选框禁用/启用表单文本框,并将文本框的名称作为参数传递给javascript函数

单击复选框禁用/启用表单文本框,并将文本框的名称作为参数传递给javascript函数,javascript,jquery,html,Javascript,Jquery,Html,这是一个示例代码,其中我正在禁用或启用单击复选框时的文本框 功能启用\u文本(状态){ 状态=!状态; document.f1.other_text.disabled=状态; } 其他 只要复选框的数据名称属性与输入元素的名称属性相同,就可以接受任意多个复选框/输入 我使用了querySelectorAll('input[class=“checker”]”),但这也可以替换为getElementsByClassName('checker')(因为我是通过类进行选择的) 我相信这仍然可以优化,

这是一个示例代码,其中我正在禁用或启用单击复选框时的文本框

功能启用\u文本(状态){
状态=!状态;
document.f1.other_text.disabled=状态;
}

其他

只要复选框的
数据名称
属性与输入元素的
名称
属性相同,就可以接受任意多个复选框/输入

我使用了
querySelectorAll('input[class=“checker”]”)
,但这也可以替换为
getElementsByClassName('checker')
(因为我是通过类进行选择的)

我相信这仍然可以优化,但我这样做是为了显示复选框和输入之间的连接

var checkbox=document.querySelectorAll('input[class=“checker”]”);
对于(变量i=0;i

其他

名称
住址
电子邮件
试试这个

$(“.txt”).prop(“已禁用”,true);
$(“.section输入:复选框”).change(函数(){
$(this.closest(“.section”).find(“.txt”).prop(“disabled”、!this.checked);
});

其他1
其他2
其他3

您可以通过获取复选框更改事件和复选框的下一个输入框来完成,如下面的代码所示

$(函数(){
$(“输入[type=checkbox]”)。更改(函数(){
如果($(this).is(“:checked”))
{
$(this).next('input[type=text]').prop('disabled',false);
}
其他的
{
$(this).next('input[type=text]').prop('disabled',true);
}
});
});

其他
其他

这是使用javascript代码的方法
var classname=document.getElementsByClassName(“chkbox”);
var myFunction=function(){
if(this.checked==true){
this.closest(“.parentDiv”).getElementsByClassName(“txtbox”)[0]。disabled=false;
}否则{
this.closest(“.parentDiv”).getElementsByClassName(“txtbox”)[0]。disabled=true;
}
};
对于(var i=0;i

其他
其他

你用jquery标记了它,所以你要接受jquery解决方案,或者你想让它保持简单的js?实际上Javascript你可以使用
.prop(“disabled”、!this.checked)
而不是
如果/else
条件所有文本框的名称不同。那你怎么办呢?我用了类名。所有文本框的名称都不一样。那你要怎么做呢?这不起作用。它不使用名称它使用类型所有文本框的名称都不同。那么你怎么做呢?我用类名来做,所以你可以给文本框起不同的名字,但是用一个普通的类名当然,你可以检查一下,我也为Javascript添加了代码,你能帮我吗javascript@AbhayVarma再次检查