如何检查页面中是否存在某个asp.net文本框

如何检查页面中是否存在某个asp.net文本框,asp.net,javascript,Asp.net,Javascript,假设我有一个母版页,其中我编写了一些javascript来访问特定asp.net文本框的值,该文本框位于其中一个内容页中,但不在所有页面中。由于某些限制,这段javascript代码无法移动到特定的内容页 现在我需要一种方法来确定页面中是否存在该文本框,这意味着包含该文本框的内容页面已经加载 如何在javascript中做到这一点?var productElement=document.getElementById(“”); var productElement = document.getEl

假设我有一个母版页,其中我编写了一些javascript来访问特定asp.net文本框的值,该文本框位于其中一个内容页中,但不在所有页面中。由于某些限制,这段javascript代码无法移动到特定的内容页

现在我需要一种方法来确定页面中是否存在该文本框,这意味着包含该文本框的内容页面已经加载

如何在javascript中做到这一点?

var productElement=document.getElementById(“”);
var productElement = document.getElementById("<%= YourTextBoxID.ClientID%>");
if (productElement != null)
{
// Code here when the Element Exists.
}
if(productElement!=null) { //当元素存在时在此处编码。 }
希望有帮助

编辑(澄清后):

在母版页中:

<% if (FindControl("YourTextBoxID") != null) {
     //do smthng, you can add some jscript that should be executed, or something else you need
} %>


任何
未定义的
空的
(在本例中是不存在的元素)都将模棱两可地转换为false。因此,如果它存在,它将变为true,并且
if
语句将运行。

在客户端,要访问控件,您需要在内容页中使用控件的
ClientID
属性

<script type="text/javascript">
var control = document.getElementById("<%=YourControl.ClientID%>")
</script> 

如果可以使用jQuery,那么可以使用“attributecontainsword”选择器。假设您的服务器端文本框id为“文本框”。客户端“name”属性将包含服务器端id(类似于“ctl00$ctl00$text_框”)。因此,要选择它,请使用:

var textBox = $("input[name~=text_box]");
if (textBox.length != 0) {
  // text box found - do something here
}
如果没有jQuery,您可以遍历form.elements集合并测试每个名称:

for (var i; i++; i < forms[0].elements.length) {
  if (forms[0].elements[i].name.indexOf("text_box") != -1) {
    // text box found - do something here
    break;
  }
}
for(var i;i++;i
Nope,它不起作用。当我运行网站的母版页时,会显示一条错误消息,上面说,“YourTextBox”的名称在当前上下文中不存在……我明白了……那么你应该在服务器标记中使用以下语句:我认为没有办法只使用javascript,因为你不知道它是什么ID应该有。在查看响应后,我想我没有正确地说明问题。这个javascript函数检查控件是否存在,它写在母版页中,而我正在搜索的控件存在于它的一个内容页中。因此,当我浏览其他页面时,该控件显然不在那里。因此,当我在母版页中尝试访问该控件的客户端id属性时,asp抛出了一个错误…我无法使用此方法访问asp.net控件。因为在服务器中处理该控件时,它会为其等效的html文本框分配一个新的唯一id,该文本框只能使用(“”)进行访问……你能不能在你的内容页面的某个地方创建一个
元素,你肯定你能知道id,然后将它的值设置为
?或者,如果你使用jQuery,你可以简单地使用通用页面结构来缩小你想要的范围,这样你就可以得到id值。我对ASP一无所知,所以我没有意识到这一点很抱歉,我的回答没有那么有用…=/但他必须绝对确定他要查找的ID不是他页面中任何其他控件的子字符串。。。
<body onload="isTextBoxExist()"
var textBox = $("input[name~=text_box]");
if (textBox.length != 0) {
  // text box found - do something here
}
for (var i; i++; i < forms[0].elements.length) {
  if (forms[0].elements[i].name.indexOf("text_box") != -1) {
    // text box found - do something here
    break;
  }
}