2015-09-04 2 views
0

Мне нужно вызвать метод ajax для выборочной проверки данных в поле пароля. Вот мой код -Пользовательские проверки данных не работают

.cshtml

<div class="form-group" style="margin-top: 20px"> 
    @Html.LabelFor(m => m.Password):  
    @Html.PasswordFor(m => m.Password, 
         new 
          { 
           autofocus = "autofocus", 
           autocomplete = "off", 
           @class = "form-control", 
           value = "", 
           data_val_newpassword = "Password does not meet requirements" 
          }) 
    @Html.ValidationMessageFor(m => m.Password) 
</div> 

.js

$.validator.addMethod("newpassword", function (value, element) { 
    var isValid = false; 

    $.ajax({ 
     url: ccm.resolveUrl('/Home/ValidateNewPassword'), 
     data: { password: value }, 
     async: false 
    }).done(function (data) { 
     isValid = data.Success; 
    }); 
    return isValid; 
}); 

$.validator.unobtrusive.adapters.addSingleVal("newpassword"); 

HomeController.cs

public JsonResult ValidateNewPassword(string password) 
{ 
    // Validate password against all password requirements. 
    var isValid = _passwordValidationService.IsValidPassword(password); 

    return Json(new { Success = isValid }, JsonRequestBehavior.AllowGet); 
} 

Однако метод JQuery не вызывается и, таким образом, запрос не Аякса не уволена.

Просим руководствоваться.

Спасибо!

ответ

1

Я получил его решить, заменив

$.validator.unobtrusive.adapters.addSingleVal("newpassword"); 

с этим -

$.validator.unobtrusive.adapters.addBool("newpassword"); 
Смежные вопросы