我的文本框RequiredFieldValidator启动,但在将javascript添加到复选框时不会停止post
我有一个requiredfieldvalidator,当它自己触发并停止回发邮件时可以工作,但是当我添加javascript以启用复选框时的next按钮时,当txtEmail为空时,requiredfieldvalidator将在单击next时触发,但它不会停止回发邮件的执行。我怎样才能让它工作我的文本框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
<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;
}
}