MVC中的jQuery信用卡验证

时间:2014-10-18 10:11:29

标签: jquery asp.net-mvc validation

我试图验证MVC中的信用卡号码,但是无论信用卡输入是否有效,甚至是空的,它都会让用户提交表单。

这是我尝试过的,谁能告诉我哪里出错了?这是我的观点的基础。

视图中的

,显然有额外的语法,格式化:

@using (Html.BeginForm("CheckoutCart", "Cart", FormMethod.Post, new {@id ="checkoutform"}))

 @Html.Label("Credit Card Number:")
    @Html.EditorFor(model => model.ModelTransaction.CreditCard, new { @id = "creditcard" })



@section scripts
{
<script src="~/Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<script type="text/javascript">

    $(document).ready(function () {

        $("#checkoutform").submit(function () {
            jQuery.validator.setDefaults({
                debug: true,
                success: "valid"
            });

            $("#checkoutform").validate({
                rules: {
                    creditcard: {
                        required: true,
                        creditcard: true
                    }
                }
            });

            if ($("#checkoutform").valid()) {
                return true;
            }

            return false;

        });
});


</script>
}

1 个答案:

答案 0 :(得分:0)

结果是jQuery验证要求你输入name属性,而不是id属性。

所以验证部分应该是:

$("#checkoutform").validate({
            rules: {
                ModelTransaction.CreditCard: {
                    required: true,
                    creditcard: true
                }
            }
        });

这是有问题的,因为'。'

所以我的解决方案是使用:

$("#checkoutform").validate({
        });

        $("#ModelTransaction_CreditCard").rules("add", { required: true, creditcard: true });

        $("#ModelTransaction_PostCode").rules("add", { required: true });

        $("#ModelTransaction_Address1").rules("add", { required: true });