我的文本框RequiredFieldValidator启动,但在将javascript添加到复选框时不会停止post

我的文本框RequiredFieldValidator启动,但在将javascript添加到复选框时不会停止post,javascript,asp.net,requiredfieldvalidator,Javascript,Asp.net,Requiredfieldvalidator,我有一个requiredfieldvalidator,当它自己触发并停止回发邮件时可以工作,但是当我添加javascript以启用复选框时的next按钮时,当txtEmail为空时,requiredfieldvalidator将在单击next时触发,但它不会停止回发邮件的执行。我怎样才能让它工作 <ul> <li>FirstName<asp:textbox ID="txtFirstName" runat="server"></asp:te

我有一个requiredfieldvalidator,当它自己触发并停止回发邮件时可以工作,但是当我添加javascript以启用复选框时的next按钮时,当txtEmail为空时,requiredfieldvalidator将在单击next时触发,但它不会停止回发邮件的执行。我怎样才能让它工作

    <ul>
    <li>FirstName<asp:textbox ID="txtFirstName" runat="server"></asp:textbox></li>
     <li>LastName<asp:textbox ID="txtLastName" runat="server"></asp:textbox></li>
     <li>Email<asp:textbox ID="txtEmail" runat="server" ValidationGroup="group"></asp:textbox></li>

    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="group" runat="server" ErrorMessage="Required!" ControlToValidate="txtEmail"></asp:RequiredFieldValidator>


    </ul>
    </div> 
    <div>

    <input type="checkbox" id="ckAgree" onclick="EnableSubmit(this)"/>
    I agree to the <a data-toggle="modal" data-target="#myModal">terms and  conditions</a>

    <asp:button ID="btnNext" runat="server" text="Next" Enabled="false" ValidationGroup="group" OnClick="btnNext_Click" />

    <asp:Label ID="lblSuccess" runat="server" Text=""></asp:Label><asp:HiddenField ID="hf_ID" runat="server" />


    ***javascript**:
    EnableSubmit = function (val) {

    var sbmt = document.getElementById("btnNext");

    if (val.checked == true) {
       sbmt.disabled = false;
    }
    else {
       sbmt.disabled = true;
    }

}复选框没有任何类型的验证器,因此是的,如果单击该按钮并启用该按钮,该按钮仍将导致回发


在服务器端,只需在btnNext的事件代码中包含一个对Page.IsValid的检查。如果IsValid为false,则不要执行任何操作。

因此您所要做的就是添加AutoPostBack=false

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="group" runat="server" ErrorMessage="Required!" ControlToValidate="txtEmail" AutoPostBack="false"></asp:RequiredFieldValidator>

在这里,您可以检查文本框中是否有任何内容。如果文本框中没有任何内容,则不会启用该按钮。只是一个建议。

我尝试使用customFieldValidator,我同样感到沮丧,requiredFieldValidator可以工作,但另一个不行,它会导致回发,所以我移动到只需单击按钮即可禁用按钮。如果没有javascript,所需的字段验证器可以完美地工作,提交按钮中没有post.put CausesValidation=true,仍然会引发回发thx
EnableSubmit = function (val) {

        var sbmt = document.getElementById("btnNext");

        if (val.checked == true && $('[id="txtEmail"]').val() != "") {
            sbmt.disabled = false;

        }
        else {
            sbmt.disabled = true;

        }
    }