繁体   English   中英

OnClientClick无法正常工作

[英]OnClientClick not working

我在使用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()" />

我在<title>之后立即在<head>编写了一个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>

TextBox1TextBox2是两个文本框的ID。

但是,当我单击“提交”按钮时,OnClick会触发,但OnClientClick不会触发。

有什么问题 ?

请帮忙。

从文本框中获取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;
    }
}

尝试这种方式:-

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

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

我看到的第一件事是,您正在使用不带.ClientID "<%=TextBox1%>" ,这是客户端可识别texbox的内容。 自然地,没有ID,您的javascript找不到对象(并且可能还会引发异常)

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

将呈现为

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

因此请尝试在JavaScript函数中使用document.getElementById("<%=TextBox1.ClientID%>").value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM