必填字段验证器允许onclick功能,即使字段无效

Required Field validator allows onclick function even if fields are not valid

本文关键字:字段 功能 无效 onclick 验证      更新时间:2023-09-26

我要求我的页面上的字段验证器工作,但他们仍然允许按钮调用java脚本函数。例如,我可以添加和删除文本,验证器将显示一个错误。如果单击提交按钮,它仍然执行onclientclick中的javascript函数。我怎么能阻止它在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();
}

然后在click事件中调用这个

<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();" />

Add Inside function

 var val = <%= RequiredFieldValidatorFname.ClientID %>;
  if (val.isvalid == false) {
   //Do something
 }

这将禁用验证器为下一步点击