0

我对 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>.

<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 没有触发。

有什么问题 ?

请帮忙。

4

4 回答 4

6

从文本框中获取 ID 时,您必须<%=TextBox1.ClientID%>在 javascript 中使用。

return false当发生错误时,您还应该使用 validate-function。

将您的 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;
    }
}
于 2012-05-30T04:58:49.977 回答
1

试试这种方式: -

document.getElementById("<%=TextBox1.ClientID%>").value

document.getElementById("<%=TextBox2.ClientID%>").value
于 2012-05-30T04:59:43.310 回答
1

我看到的第一件事是,您使用"<%=TextBox1%>"的是没有.ClientID,这是在客户端识别 texbox 的。自然,如果没有 id,您的 javascript 将无法找到该对象(并且可能也会引发异常)

于 2012-05-30T05:00:01.607 回答
1

(document.getElementById("<%=TextBox1%>").value == "")

将呈现为

(document.getElementById("System.Web.UI.WebControls.TextBox").value == "").

所以尝试document.getElementById("<%=TextBox1.ClientID%>").value在javascript函数中使用。

于 2012-05-30T05:08:11.893 回答