我有一个母版页,其中包含在表单中继承它的所有内容。从中继承的页面需要运行一些javascript来处理页面上的文本字段。但是,我似乎无法通过javascript引用该文本字段,因为表单从母版页开始。
以下行将出现虚假:
document.form1.txtFindUser.value = blah.responseText;
这是因为form1是在母版页上定义的,而txtFindUser是在当前页面上。
如何处理这些情况?
答案 0 :(得分:4)
怎么样:
document.getElementById('txtFindUser').value = blah.responseText;
但是如果txtFindUser是你的服务器控件的id,那么你应该使用上面的代码:
document.getElementById('<%= txtFindUser.ClientID %>').value = blah.responseText;
答案 1 :(得分:1)
页面元素在运行时并不总是与.NET中的设计时相同。运行它时查看页面的来源,看看IIS解释后调用了什么txtFindUser。
答案 2 :(得分:0)
页面上的任何服务器控件都将使用不同的名称呈现,因为该页面是从母版页派生的。 (我想这可以消除在母版页和派生页面中对控件使用相同名称时可能产生的复杂性。
var ctrl = '<%= txtBox1.ClientID %>';
document.getElementById(ctrl).value='Hello world';
有关详细信息,请参阅this帖子