JQuery:Multiple checkbox禁用多个文本框

JQuery:Multiple checkbox禁用多个文本框,jquery,Jquery,我的表格中有多个复选框;每个选项都可以禁用特定的文本框 目前我的表格中有这个 $("#check1").click(function() { $("#text1").attr('disabled',! this.checked) }); $("#check2").click(function() { $("#text2").attr('disabled',! this.checked) }); ... ... ... 关于如何缩短这段时间有什么建议吗?我认为每个复选框和文

我的表格中有多个复选框;每个选项都可以禁用特定的文本框

目前我的表格中有这个

$("#check1").click(function() {
    $("#text1").attr('disabled',! this.checked)
});


$("#check2").click(function() {
    $("#text2").attr('disabled',! this.checked)
});

...
...
...
关于如何缩短这段时间有什么建议吗?我认为每个复选框和文本框有一行代码似乎太多、重复和冗余。提前感谢您。

您可以这样做:

$("#check1, #check2, #check3").click(function() {
    var textId = "#" + this.id.replace("check", "text");
    $(textId).attr('disabled',! this.checked)
});
$(".check").click(function() {
    var index = $(this).index(".check");
    $(".text:eq("+index+")").attr('disabled',! this.checked)
});

…前提是您没有任何ID以check开头的复选框,您不希望将其包含在选择器中

基本上,任何识别有问题的复选框的选择器都可以工作,然后只需操纵ID即可

更新:根据您的HTML结构,您可能可以完全取消ID。例如,给定此表单:

<form id='foo'>
  <label><input type='checkbox'>Field 1</label>
  <br><input type='text' size='40' disabled>
  <br><label><input type='checkbox'>Field 2</label>
  <br><input type='text' size='40' disabled>
  <br><label><input type='checkbox'>Field 3</label>
  <br><input type='text' size='40' disabled>
  <br><label><input type='checkbox'>Field 4</label>
  <br><input type='text' size='40' disabled>
</form>
您可以这样做:

$("#check1, #check2, #check3").click(function() {
    var textId = "#" + this.id.replace("check", "text");
    $(textId).attr('disabled',! this.checked)
});
$(".check").click(function() {
    var index = $(this).index(".check");
    $(".text:eq("+index+")").attr('disabled',! this.checked)
});

…前提是您没有任何ID以check开头的复选框,您不希望将其包含在选择器中

基本上,任何识别有问题的复选框的选择器都可以工作,然后只需操纵ID即可

更新:根据您的HTML结构,您可能可以完全取消ID。例如,给定此表单:

<form id='foo'>
  <label><input type='checkbox'>Field 1</label>
  <br><input type='text' size='40' disabled>
  <br><label><input type='checkbox'>Field 2</label>
  <br><input type='text' size='40' disabled>
  <br><label><input type='checkbox'>Field 3</label>
  <br><input type='text' size='40' disabled>
  <br><label><input type='checkbox'>Field 4</label>
  <br><input type='text' size='40' disabled>
</form>

如果可以更改HTML结构,则可以执行以下操作:

$("#check1, #check2, #check3").click(function() {
    var textId = "#" + this.id.replace("check", "text");
    $(textId).attr('disabled',! this.checked)
});
$(".check").click(function() {
    var index = $(this).index(".check");
    $(".text:eq("+index+")").attr('disabled',! this.checked)
});

如果可以更改HTML结构,则可以执行以下操作:

$("#check1, #check2, #check3").click(function() {
    var textId = "#" + this.id.replace("check", "text");
    $(textId).attr('disabled',! this.checked)
});
$(".check").click(function() {
    var index = $(this).index(".check");
    $(".text:eq("+index+")").attr('disabled',! this.checked)
});

可以替换$'[id^=check]'中的第一行。单击函数{可以替换$'[id^=check]'中的第一行。单击函数{