我的页面上有一个asp.net TextBox控件,每当用户点击搜索按钮时我都想要验证TextBox for Blank。我想使用onClientClick事件并传递参数,因为我的Javascript函数将从外部JS调用。
这是我尝试过的。
<asp:TextBox ID="search" runat="server">
</asp:TextBox>
<script language="javascript" type="text/javascript">
function voidsearch(s) {
alert(document.getElementById(s).value);
}
</script>
<asp:ImageButton ID="img1" runat="server" ImageUrl="Dotnetnuke.ico"
OnClientClick="voidsearch('<%= search.ClientID %>'); return false;" />
但是这会引发错误。所需对象。我也通过了this.search ..但同样的错误。我不明白为什么我得到这个错误,因为我首先声明控制然后调用它的ID。
请有人帮助我。
答案 0 :(得分:0)
检查another similar question中的答案。
答案 1 :(得分:0)
似乎“搜索”TextBox被放置在INamingContainer上,因此无法评估ClientID属性。使用infragistics get clientID of dropdown in Rowedit template主题中描述的方法:
<asp:TextBox ID="search" runat="server" OnInit="search_Init"></asp:TextBox>
<asp:ImageButton ID="img1" runat="server" ImageUrl="Dotnetnuke.ico"
OnClientClick="voidsearch();" return false;" />
protected void search_Init(object sender, EventArgs e) {
TextBox txt = (TextBox)sender;
string script = string.Format("var _{0} = document.getElementById('{1}');", txt.ID, txt.ClientID);
Page.ClientScript.RegisterStartupScript(Page.GetType(), "ANY_KEY", script, true);
}
<script language="javascript" type="text/javascript">
function voidsearch() {
alert(_search);
alert(_search.value);
}
</script>
答案 2 :(得分:0)
在asp.net上单击按钮时在空白文本框中验证
<asp:textbox id="name" runat="server"></asp:textbox>
为验证文本框创建JavaScript函数
<script language="javascript" type="text/javascript">
function validate()
{
if(document.getElementByID("<%=name.ClientID%>").value=="")
{
alert("Please enter something");
document.getElementByID("<%=name.ClientID%>").focus();
return false;
}
return true;
}
</script>
点击按钮时调用功能:
<asp:button id="btn1" runat="server" OnClientClick="return validate()"></asp:button>