我在OnClientClick上遇到了一些问题。
我在网页表单中添加了一个按钮。
<asp:Button ID="Button1" runat="server" onclick="Button1_Click"
style="top: 307px; left: 187px; position: absolute; height: 26px; width: 90px"
Text="Submit" OnClientClick="return validate()" />
我正在<head>
之后立即在<title>
内写一个javascript。
<script language="javascript" type="text/javascript">
function validate() {
if (document.getElementById("<%=TextBox1%>").value == "") {
alert("textbox1 should not be empty");
}
else if(document.getElementById("<%=TextBox2 %>").value==""){
alert("textbox2 should not be empty");
}
}
</script>
TextBox1
和TextBox2
是两个文本框的ID。
但是,当我点击“提交”按钮时,OnClick正在触发,但OnClientClick未触发。
问题是什么?
请帮忙。
答案 0 :(得分:6)
从文本框中获取ID时,您必须在javascript中使用<%=TextBox1.ClientID%>
。
发生错误时,您还应该从validate-function return false
。
将您的javascript替换为:
function validate() {
if(document.getElementById('<%=TextBox1.ClientID%>').value == '') {
alert('Textbox1 should not be empty');
return false;
}
if(document.getElementById('<%=TextBox2.ClientID%>').value == '') {
alert('Textbox2 should not be empty');
return false;
}
}
答案 1 :(得分:1)
尝试这种方式: -
document.getElementById("<%=TextBox1.ClientID%>").value
document.getElementById("<%=TextBox2.ClientID%>").value
答案 2 :(得分:1)
我看到的第一件事是你使用的"<%=TextBox1%>"
没有.ClientID
,
这是识别客户端texbox的原因。自然,没有id,你javascript找不到对象(也可能抛出异常)
答案 3 :(得分:1)
(document.getElementById("<%=TextBox1%>").value == "")
将呈现为
(document.getElementById("System.Web.UI.WebControls.TextBox").value == "")
。
所以尝试在javascript函数中使用document.getElementById("<%=TextBox1.ClientID%>").value
。