使用javascript启用和禁用复选框

时间:2016-04-16 06:58:28

标签: javascript checkbox

这是我的复选框和文本框:

<td> <input type ="checkbox" id="haha" onclick="enable('<?php echo $agenda->id; ?>')" value=<?php echo $agenda->id; ?>>

<td> <input type="text" name="dnama" id="nama_<?php echo $agenda->id; ?>" value="<?php echo $agenda->nama; ?>" disabled /> </td>
<td> <input type="text" name="dketer" id="ket_<?php echo $agenda->id; ?>" value="<?php echo $agenda->keterangan; ?>" disabled> </td>

这是我的javascript:

function enable(id) {
var disabled = !document.getElementById('haha').checked;
document.getElementById("nama_"+id).disabled = disabled;
document.getElementById("ket_"+id).disabled = disabled; }

我的问题是为什么这只适用于第一行,我选中第一个复选框,文本框将启用,然后我取消选中第一个复选框并选中第二个和其他文本框仍然禁用..我该如何解决这个问题?

6 个答案:

答案 0 :(得分:1)

您只能使用一个功能:

function toggle(someId) {
    document.getElementById(someId).disabled = !document.getElementById(someId).disabled;
}

答案 1 :(得分:0)

您需要以下内容:

function testEna() { 
  var dis = this.checked;
  document.getElementById("nama"+this.id).disabled=dis;
  document.getElementById("ket"+this.id).disabled=dis;
}
window.onload=function() {
  var ena = document.querySelectorAll(".enabler");
  for (var i=0;i<ena.length;i++) {
    ena[i].onclick=testEna;
    ena[i].onclick(); // run now too
  }
}
使用

<input type="checkbox" class="enabler" id="<?php echo $agenda->id; ?>" />

<input type="text" name="dnama" id="nama_<?php echo $agenda->id; ?>" value="<?php echo $agenda->nama; ?>"/>
<input type="text" name="dketer" id="ket_<?php echo $agenda->id; ?>" value="<?php echo $agenda->keterangan; ?>"/> 

答案 2 :(得分:0)

我不知道你的ID,但是禁用和启用复选框代码是这样的:

function enable() {
    document.getElementById("some_id").disabled= false;

}

function disable() {
    document.getElementById("some_id").disabled= true;
}

答案 3 :(得分:0)

正如你所说,你使用相同的id两次。如果改变你的身份,你可以使用它。但你应该更新游行,即不要传递id,你应该传递这个对象

var globalSelection = ["lynk_url", "jsonBody", "lynk_dummy1", "lynk_dummy2", "lynk_name", "lynk_desc", "lynk_flag"];

最好不建议使用相同的ID。

作为参考,您可以查看https://jsfiddle.net/uw5f001q/3/

答案 4 :(得分:0)

我完全不知道你的问题,但是为此使用jQuery是件好事。我试过这个。见下面的jsfiddel链接

jsfiddle.net/ravipateldhg/5c7rdt0a

答案 5 :(得分:0)

试试这个..

..../NuSMV-<version>/NuSMV