验证文本框是否应填充或两者都应为空

时间:2015-11-20 15:36:34

标签: javascript asp.net

我有两个文本框。我需要验证两个文本框是否都已填充,只能填充一个文本框。

<asp:TextBox ID="testTxtName" runat="server" />
<asp:TextBox ID="testTxtGroup" runat="server" />

我需要在提交按钮点击时进行此验证。 因此,用户必须填写两个文本框,或者两者都应该留空。仅填充一个文本框是错误的。我怎么能用javascript做到这一点?

2 个答案:

答案 0 :(得分:1)

假设您已经处理了服务器端验证,这是您可以在客户端处理它的一种方法。

<form onSubmit="validateForm">

function validateForm() {
    var textField1Value = document.getElementById('testTxtName').value;
    var textField2Value = document.getElementById('testTxtGroup').value;

    if ((textField1Value && !textField2Value) || (!textField1Value && textField2Value)) {
        return false;
    }

    return true;
}

关于此的几点说明:

  • 这是有效的,因为在JS中,空字符串是假值
  • 从附加到onSubmit事件的函数返回false将阻止表单提交。
  • 显然你需要显示某种错误信息,而不仅仅是默默地失败。
祝你好运!

答案 1 :(得分:0)

<script type="text/javascript">
    function validate() {
        var txt1 = document.getElementById('<%=TextBox1.ClientID%>').value;
        var txt2 = document.getElementById('<%=TextBox2.ClientID%>').value;
        if (!txt1 && !txt2) {
            true
        }
        else if( (txt1 && !txt2)|| (!txt1 && !txt){
            alert("Please fill both textbox");
            false
        }           
        true
    }
</script>
<title></title>

<div>

    <asp:Button ID="Button1" runat="server" OnClientClick="validate();" Text="Button" />

    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>

</div>
</form>