这里是我的JavaScript:我的JavaScript有什么问题? (C#/ ASP.NET)
<script type="text/javascript">
function onholdev(index) {
var chk = document.getElementById('<%=grdCons.Rows[' + index + '].FindControl("chkHold").ClientID %>');
var txt = document.getElementById('<%=grdCons.Rows[' + index + '].FindControl("txtReason").ClientID %>');
if (chk.checked == true) {
txt.disabled = false;
}
else {
txt.disabled = true;
txt.value = "";
}
}
</script>
的 '索引' 变量来自于我的GridView的RowDataBound事件,像这样:
CheckBox chkHold = ((CheckBox)e.Row.FindControl("chkHold"));
chkHold.Attributes.Add("onchange", "onholdev(" + e.Row.RowIndex + ")");
不过,我在我的函数的第一行(从var chk开始)获取'字符串字符串中的太多字符'。为什么是这样?
这并不完全正确 - 他使用服务器端输出控制,几乎是唯一途径的客户端ID试试这个以ASP.Net的形式获得Id,并随机生成它们。生成的JavaScript应该看起来像这样:`var chk = document.getElementById('chk_0000001');`。也就是说,我认为最好是尽量保持所有的服务器端,如果你可以 – Basic 2010-11-25 10:19:25
@Basiclife - 这是不正确的,看看这个函数,`index`是一个参数传入,这将有JavaScript尝试访问服务器按索引收集(`grdCons.Rows`),你根本无法做到这一点。 – 2010-11-25 10:20:56
啊 - 我没有发现他在通话中使用JS索引。是的,这是永远不会工作:) – Basic 2010-11-25 10:22:49