У меня есть обязательные поля на моей странице, которые работают, однако они все еще позволяют кнопке вызывать функцию java-скрипта. например, я могу добавить текст и удалить его, и валидатор покажет ошибку. Если нажать кнопку "Отправить", она все еще выполняет функцию javascript в onclientclick. Как я могу остановить его от выполнения функции в onclientclick?
Кнопка:
<asp:Button ID="formPost" text="Submit" class="btn btn-default" runat="server" CausesValidation="true" OnClientClick="return sendHPCIMsg();" />
Примечание. У меня нет доступа к редактированию функции sendHPCIMsg().
Поле для проверки:
<div class="form-group col-small">
<label class="col-sm-2 control-label">First Name: </label>
<div class="col-sm-8">
<asp:TextBox ID="fNameTxt" runat="server" CssClass="input-small"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorFname" ControlToValidate="fNameTxt" runat="server" ErrorMessage="First name is required" ValidationGroup="billing" ForeColor="Red"></asp:RequiredFieldValidator>
</div>
</div>
Также поле выше находится в AJAX CollapsiblePanelExtender, поэтому здесь используется javascript для включения/выключения проверки (на основе флажка):
<script>
$('#SameBillingChkBx').bind('click', function (e)
{
if ($(this).is(':checked'))
{
$.each(Page_Validators, function (index, validator) {
if (validator.validationGroup == "billing") {
ValidatorEnable(validator, false);
}
});
}
})
</script>
Я понял. Я написал следующую функцию:
function submitform()
{
if (!Page_IsValid) {
return false;
}
return sendHPCIMsg();
}
Затем я вызвал это на мой клик.
<asp:Button ID="formPost" text="Submit" class="btn btn-default" runat="server" CausesValidation="true" OnClientClick="return submitform();" />
Спасибо всем за помощь!
add: OnClientClick="if(Page_ClientValidate()) CloseDialog();"
<asp:Button ID="formPost" text="Submit" class="btn btn-default" runat="server" CausesValidation="true" OnClientClick="if(Page_ClientValidate()) return sendHPCIMsg();" />
Добавить функцию Inside
var val = <%= RequiredFieldValidatorFname.ClientID %>;
if (val.isvalid == false) {
//Do something
}
это отключит валидатор для следующего щелчка