我想在选中其中的复选框时禁用<tr>
元素中的所有元素。我的代码如下:
<tr>
<td style="width:25px" id="td_CheckBoxClickable">
<asp:CheckBox runat="server" ClientIDMode="Static" ID="CheckBox_EnableRow" OnCheckedChanged="CheckBox_EnableRow_CheckedChanged" />
</td>
<td>
<asp:TextBox runat="server" ID="textBox_Count" />
</td>
<td>
<asp:TextBox runat="server" ID="textBox_Value" />
</td>
</tr>
目前CheckBox_EnableRow_CheckedChanged
事件为空。
我原以为可以查看复选框的父级的父级,如下所示:
protected void CheckBox_EnableRow_CheckedChanged(object sender, EventArgs e) {
TableRow row = (TableRow)((CheckBox)sender).Parent.Parent;
row.Enabled = false;
}
但这似乎不起作用。
答案 0 :(得分:2)
我建议使用jquery。使用jquery,您可以找到复选框的父tr元素,然后将tr元素中所有输入元素的属性更改为disabled = true。首先你必须给tr一个类,比如class =“trclass”,然后你必须获得复选框的父tr。
html部分:
<input id="Checkbox1" type="checkbox" onchange="DsiableRow(this)" />
javascript部分:
function DsiableRow(MyCHeckbox)
{
var trElement = $(MyCHeckbox).parents(".trclass");
$("trElement :input").attr("disabled", true);
}
答案 1 :(得分:1)
我会这样解决:
<input id="theCheckBox" type="checkbox" onchange="DisableRow(this)" />
function DisableRow(checkBox)
{
var $trElement= $(checkBox).closest("tr");
$trElement.find("input").attr("disabled", "disabled");
}
HTML和XHTML之间的差异
在XHTML中,禁止属性最小化,并且必须将disabled属性定义为。
来源 :http://www.w3schools.com/tags/att_input_disabled.asp
另请注意,如果您在浏览器中使用默认提交方法,则:
提示:不会提交表单中的已禁用元素 来源 :http://www.w3schools.com/tags/att_input_disabled.asp
答案 2 :(得分:0)
使用javascript获取<tr>
并将其设为display:none