javascript - Jquery 验证器不工作

标签 javascript jquery

我最近找到了this显示澳大利亚商业号码的 jquery 验证器函数的页面。在我的 Cshtml 页面中,我有以下表单元素。

<div class="col-md-4">
    <div class="form-group">
        <label asp-for="ABN" class="col-md-4 col-lg-4 control-label"></label>
        <div class="col-md-8 col-lg-8">
            <input asp-for="ABN" class="form-control" />
            <span asp-validation-for="ABN" class="text-danger" />
        </div>
    </div>
</div>

我已将 jquery 代码放入页面并使用 F12 调试器,我注意到它确实逐步执行了它,但是当它的数字返回 false 时,我没有发现任何关于错误的事情。页面只是关闭以更新数据库。

function abnValidate (value, element) {
    if (value.length != 11 || isNaN(parseInt(value)))
    return false;
    var weighting = [10,1,3,5,7,9,11,13,15,17,19];
    var tally = (parseInt(value[0]) - 1) * weighting[0];
    for (var i = 1; i < value.length; i++) {
        tally += (parseInt(value[i]) * weighting[i]);
    }
    return (tally % 89) == 0;
}
jQuery.validator.addMethod('abnValidate', abnValidate, 'This ABN is not valid');

我在JSFiddle试过了但我得到的只是错误:

{"error": "Please use POST request"}

我怀疑这是不知道如何正确配置代码的情况。有人可以看看我错过了什么吗?

编辑

这是要求的完整表格。

            @model JobsLedger.ViewModels.CompanyDetailsViewModel

        <form asp-action="Edit">
            <br />
            <div class="form-horizontal container">


                <div class="row">
                    <div class="col-lg-12 text-center">
                        <h2><span class="glyphicon glyphicon-edit"></span> Edit Company Details </h2>
                        <hr>
                    </div>
                </div>

                <div asp-validation-summary="ValidationSummary.ModelOnly" class="text-danger"></div>
                <input type="hidden" asp-for="CompanyDetailsId" />


                @*ROW ONE*@
                <div class="row">

                    <div class="col-md-4">
                        <div class="form-group">
                            <label asp-for="CompanyName" class="col-md-4 col-lg-4 control-label"></label>
                            <div class="col-md-8 col-lg-8">
                                <input asp-for="CompanyName" class="form-control" />
                                <span asp-validation-for="CompanyName" class="text-danger" />
                            </div>
                        </div>
                    </div>

                </div>
                @*ROW TWO*@
                <div class="row">

                    <div class="col-md-4">
                        <div class="form-group">
                            <label asp-for="ContactFirstName" class="col-md-4 col-lg-4 control-label"></label>
                            <div class="col-md-8 col-lg-8">
                                <input asp-for="ContactFirstName" class="form-control" />
                                <span asp-validation-for="ContactFirstName" class="text-danger" />
                            </div>
                        </div>
                    </div>

                    <div class="col-md-4">
                        <div class="form-group">
                            <label asp-for="ContactLastName" class="col-md-4 col-lg-4 control-label"></label>
                            <div class="col-md-8 col-lg-8">
                                <input asp-for="ContactLastName" class="form-control" />
                                <span asp-validation-for="ContactLastName" class="text-danger" />
                            </div>
                        </div>
                    </div>

                </div>

                @*ROW THREE*@
                <div class="row">

                    <div class="col-md-4">
                        <div class="form-group">
                            <label asp-for="ContactEmail" class="col-md-4 col-lg-4 control-label"></label>
                            <div class="col-md-8 col-lg-8">
                                <input asp-for="ContactEmail" class="form-control" />
                                <span asp-validation-for="ContactEmail" class="text-danger" />
                            </div>
                        </div>
                    </div>



                </div>

                @*ROW FOUR*@
                <div class="row">

                    <div class="col-md-4">
                        <div class="form-group">
                            <label asp-for="MobilePhone" class="col-md-4 col-lg-4 control-label"></label>
                            <div class="col-md-8 col-lg-8">
                                <input asp-for="MobilePhone" class="form-control" />
                                <span asp-validation-for="MobilePhone" class="text-danger" />
                            </div>
                        </div>
                    </div>

                    <div class="col-md-4">
                        <div class="form-group">
                            <label asp-for="OfficePhone" class="col-md-4 col-lg-4 control-label"></label>
                            <div class="col-md-8 col-lg-8">
                                <input asp-for="OfficePhone" class="form-control" />
                                <span asp-validation-for="OfficePhone" class="text-danger" />
                            </div>
                        </div>
                    </div>

                </div>


                @*ROW FIVE*@
                <div class="row">

                    <div class="col-md-4">
                        <div class="form-group">
                            <label asp-for="CompanyEmail" class="col-md-4 col-lg-4 control-label"></label>
                            <div class="col-md-8 col-lg-8">
                                <input asp-for="CompanyEmail" class="form-control" />
                                <span asp-validation-for="CompanyEmail" class="text-danger" />
                            </div>
                        </div>
                    </div>

                </div>

                @*ROW SIX*@
                <div class="row">

                    <div class="col-md-4">
                        <div class="form-group">
                            <label asp-for="ABN" class="col-md-4 col-lg-4 control-label"></label>
                            <div class="col-md-8 col-lg-8">
                                <input asp-for="ABN" class="form-control" />
                                <span asp-validation-for="ABN" class="text-danger" />
                            </div>
                        </div>
                    </div>

                </div>

                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h4 class="panel-title"><strong>Company Address Details</strong></h4>
                    </div>
                    <div class="panel-body">

                        @*ROW SEVEN*@
                        <div class="row">

                            <div class="col-md-4">
                                <div class="form-group">
                                    <label asp-for="Street1" class="col-md-4 col-lg-4 control-label"></label>
                                    <div class="col-md-8 col-lg-8">
                                        <input asp-for="Street1" class="form-control" />
                                        <span asp-validation-for="Street1" class="text-danger" />
                                    </div>
                                </div>
                            </div>

                            <div class="col-md-4">
                                <div class="form-group">
                                    <label asp-for="Street2" class="col-md-4 col-lg-4 control-label"></label>
                                    <div class="col-md-8 col-lg-8">
                                        <input asp-for="Street2" class="form-control" />
                                        <span asp-validation-for="Street2" class="text-danger" />
                                    </div>
                                </div>
                            </div>

                        </div>


                        @*ROW EIGHT*@
                        <div class="row">

                            <div class="col-md-4">
                                <div class="form-group">
                                    <label asp-for="State" class="col-md-4 col-lg-4 control-label"></label>
                                    <div class="col-md-8 col-lg-8">
                                        <select asp-for="State" asp-items="@Model.StatesList" class="form-control"></select>
                                        <span asp-validation-for="State" class="text-danger" />
                                    </div>
                                </div>
                            </div>

                            <div class="col-md-4">
                                <div class="form-group">
                                    <label asp-for="Suburb" class="col-md-4 col-lg-4 control-label"></label>
                                    <div class="col-md-8 col-lg-8">
                                        <input asp-for="Suburb" class="form-control">
                                        <span asp-validation-for="Suburb" class="text-danger" />
                                    </div>
                                </div>
                            </div>

                            <div class="col-md-4">
                                <div class="form-group">
                                    <label asp-for="Postcode" class="col-md-4 col-lg-4 control-label"></label>
                                    <div class="col-md-8 col-lg-8">
                                        <input asp-for="Postcode" class="form-control" readonly="readonly" />
                                        <span asp-validation-for="Postcode" class="text-danger" />
                                    </div>
                                </div>
                            </div>

                        </div>
                    </div>
                </div>

                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h4 class="panel-title"><strong>Company Bank Details</strong></h4>
                    </div>
                    <div class="panel-body">

                        @*ROW NINE*@
                        <div class="row">

                            <div class="col-md-4">
                                <div class="form-group">
                                    <label asp-for="BankName" class="col-md-4 col-lg-4 control-label"></label>
                                    <div class="col-md-8 col-lg-8">
                                        <input asp-for="BankName" class="form-control" />
                                        <span asp-validation-for="BankName" class="text-danger" />
                                    </div>
                                </div>
                            </div>

                            <div class="col-md-4">
                                <div class="form-group">
                                    <label asp-for="BankBSB" class="col-md-4 col-lg-4 control-label"></label>
                                    <div class="col-md-8 col-lg-8">
                                        <input asp-for="BankBSB" class="form-control" />
                                        <span asp-validation-for="BankBSB" class="text-danger" />
                                    </div>
                                </div>
                            </div>

                            <div class="col-md-4">
                                <div class="form-group">
                                    <label asp-for="BankAccount" class="col-md-4 col-lg-4 control-label"></label>
                                    <div class="col-md-8 col-lg-8">
                                        <input asp-for="BankAccount" class="form-control" />
                                        <span asp-validation-for="BankAccount" class="text-danger" />
                                    </div>
                                </div>
                            </div>

                        </div>

                    </div>
                </div>

                @*ROW TEN*@
                <div class="row">

                    <div class="col-md-4">
                        <div class="form-group">
                            <label class="col-md-4 col-lg-4 control-label">Update Form:</label>
                            <div class="col-md-8 col-lg-8">
                                <input type="submit" value="Save" class="btn btn-default" />
                            </div>
                        </div>
                    </div>

                </div>

                @*Closing DIV for class horizontal*@

            </div>

        </form>

        <div>
            <a asp-action="Index">Back to List</a>
        </div>

        @section Scripts {
            <script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
            <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>


            <script type="text/javascript">
                //<![CDATA[
                $(document).ready(function () {



                    function abnValidate(value, element) {
                        if (value.length != 11 || isNaN(parseInt(value)))
                            return false;
                        var weighting =
                        [10, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19];
                        var tally = (parseInt(value[0]) - 1) * weighting[0];
                        for (var i = 1; i < value.length; i++) {
                            tally += (parseInt(value[i]) * weighting[i]);
                        }
                        return (tally % 89) == 0;
                    }
                    jQuery.validator.addMethod(
                    'abnValidate',
                    $("#ABN"), 'This ABN is not valid'
                    );


                });

                //]]></script>

        }

最佳答案

你必须在某处添加以下内容

<form method="POST">

关于javascript - Jquery 验证器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36567145/

相关文章:

javascript - jqgrid - 为什么在 jquery.ajax 之后(类型 :html) then jqgrid reload event not working?

jQuery Simple Slider 未设置两个文本框的值

javascript - 修改 floor/ceiling 函数以使用 1 以外的数字?

javascript - 在 Angular Controller 中获取查询字符串

javascript inner html 不断更新

javascript - 如何将CSS添加到Jquery上的特定数组元素

javascript - 查询 - 将 <br/> 从文本区域传递到隐藏的 div 以自动调整大小

javascript - 如何使用 javascript/jquery 从图像中读取条形码?

jquery 只检查页面上一张图片的比率

javascript - 循环遍历数组中的对象,打印属性