验证文本框事件更改的模型

时间:2014-03-24 13:04:54

标签: jquery ajax asp.net-mvc data-annotations razor-2

我有一个模型类

public class ActorPhoneModel
    {
        public int PhoneTypeTd { get; set; }

        public string PhoneType { get; set; }

        [StringLength(30, ErrorMessageResourceType = typeof(ErrorMessage),
            ErrorMessageResourceName = "phone_number_you_entered_must_be_at_least_five_characters", ErrorMessage = "", MinimumLength = 5)]

        [RegularExpression(@"/^[ 0-9()+-]*$/", ErrorMessageResourceType = typeof(ErrorMessage),
            ErrorMessageResourceName = "phone_number_is_invalid", ErrorMessage = "")]
        public string PhoneNumber { get; set; }
    }

在视图

@foreach (var phone in Model.Phones)
                {
                    <tr>
                        <td>@phone .PhoneType</td>
                        <td>
                            @Html.TextBoxFor(m => phone .PhoneNumber, new
                       {
                           @class = "phoneNumber form-control",
                           data_phoneType = @phone .PhoneTypeTd,
                           data_actorId = Model.ActorId,
                           maxlength = "30"
                       })

                        </td>
                    </tr>
                }

我正在使用ajax帖子来保存更改的电话号码。 在文本框的文本更改事件中,我想验证模型

        $(".phoneNumber").change(function () {
            var phoneType = $(this).attr("data-phoneType");
            var actorId = $(this).attr("data-actorId");
            var phoneNumber = $(this).val();

            if (//validate model) {

                //code to save phone number of that phoneType
            }
        });

我如何在jquery中验证该模型..我已经尝试了方法form.valid()但它不适用于我。

1 个答案:

答案 0 :(得分:0)

我猜你只需要通过jQuery验证, 因为在更改文本时没有服务器端调用。 而且你需要使用jQuery的RegularExpression只验证一个字段。 会简单得多。 希望这会有所帮助。