Мне нужна помощь. У меня есть форма регистрации пользователя, и я должен сопоставить «Клиент» с пользователем.asp.net mvc удаленная проверка с помощью jquery
Теперь я хочу проверить пользовательский «клиент», который пришел из другого источника, и я положил «клиент» в «Список избранных» «Больше», чем 2000, поэтому я использую плагин JQuery Chosen для поиска в списке выбора , но Поле «клиент» зависит от «ролей», поэтому при загрузке страницы «клиент» по умолчанию скрывается по умолчанию, когда я изменяю отображение роли «клиент» (выбранный список выбора), и когда я выбираю клиента, чтобы он не удалял удаленную проверку. Я попытался сделать это видимым на «проверке элемента», и я меняю дисплей: none для отображения: bock и попытаться изменить значение из выбранного его не работает, когда я изменяю значение списка выбора orignal, нажимая на выбранный список, тогда его рабочий штраф Я имею в виду, что он запускает мой метод удаленного валидатора здесь, это полный пример кода, что я делаю. , пожалуйста, помогите, пожалуйста, подтвердите, когда выбрано выбранное значение изменения списка.
Это RegisterViewModel
public class RegisterViewModel
{
[Required]
[Display(Name = "Role")]
public string Role { get; set; }
//for edit view model additionalFields which will only require for edit mode
//[System.Web.Mvc.Remote("DoesCustomerCodeExist", "Account", AdditionalFields = "OldCustomerCode")]
[Required(AllowEmptyStrings = false, ErrorMessage = "Customer Code is required.")]
[Display(Name = "Customer Code", Description = "A customer code come from our oracle system.")]
[System.Web.Mvc.Remote("DoesCustomerCodeExist", "Account")]
[Range(0, int.MaxValue, ErrorMessage = "Please enter valid Customer Code in number only.")]
public string CustomerCode { get; set; }
}
Вот мой взгляд cshtml в этом файле также есть JS код для отображения клиентов отборных Выберите список, когда роль изменилась.
//select Role
<div class="form-group">
@Html.LabelFor(m => m.Role, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.DropDownListFor(x => x.Role, ViewBag.Roles as SelectList,"", new { @class = "form-control chosen-select", data_placeholder = "Select a Role" })
@Html.ValidationMessageFor(m => m.Role, "", new { @class = "text-danger" })
</div>
</div>
//Customer Code
<div class="form-group condition-div user hidden ">
//this hidden field is only for edit mode
//@Html.Hidden("OldCustomerCode", Model.CustomerCode)
@Html.LabelFor(m => m.CustomerCode, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.DropDownListFor(x => x.CustomerCode, (SelectList)ViewBag.Customers, "", new { @class = "form-control chosen-customers", data_placeholder = "Select Customer" })
@Html.ValidationMessageFor(m => m.CustomerCode, "", new { @class = "text-danger" })
</div>
</div>
@section Styles{
@Styles.Render("~/Content/chosen")
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/chosen")
<script type="text/javascript">
$('input[type=text]').tooltip(
{
placement: "right",
trigger: "focus"
}
);
$(".chosen-select").chosen({ allow_single_deselect: true});
$('#Role').change(function() {
if (this.value == "") {
$('.condition-div').addClass('hidden'); // hide all the conidional divs
} else if (this.value == "NBP User" || this.value == "NBP Head") {
$('.condition-div.admin').addClass('hidden'); /// hide admin conditional divs
$('.condition-div.user').removeClass('hidden'); // show user role conditioanl div
//configure selectlist to Chosen select and if i remove this line and show orignal select list its working fine mean remote validating on change but if i use this is not working on change.
$(".chosen-customers").chosen({ allow_single_deselect: true, search_contains: true });
$.validator.setDefaults({ ignore: ":hidden:not(.chosen-customers)" });
} else if (this.value == "ICIL User" || this.value == "ICIL Head" || this.value == "FIO User") {
$('.condition-div.user').addClass('hidden'); /// hide user role conditional divs
$('.condition-div.admin').removeClass('hidden'); // show admin role conditional divs
$(".chosen-branch").chosen({ allow_single_deselect: true });
$.validator.setDefaults();
}
});
</script>
}
Действие контроллера проверить код клиента
public ActionResult DoesCustomerCodeExist(string CustomerCode, string OldCustomerCode)
{
//the oldCustomerCode will come null in this case cause its register view and in edit view OldCustomerCode will be use
if (CustomerCode == OldCustomerCode)
return Json(true, JsonRequestBehavior.AllowGet);
if (DbContext.Users.Any(x => x.CustomerCode == CustomerCode))
return Json("Customer code already exists in application. Please verify user details.", JsonRequestBehavior.AllowGet);
if (DbOracle.IsCustomerCodeExist(CustomerCode))
return Json(true, JsonRequestBehavior.AllowGet);
else
return Json("The customer code does not exist in database.", JsonRequestBehavior.AllowGet);
}
Весь код работает отлично, если я не использовал JQuery выбранный плагин. В короткой проблеме используется, когда я использую выбранный плагин для выбора списка. Удаленная проверка - это остановка проверки значений. Я могу обмениваться изображениями, если вам сейчас нужны парни, у меня есть ограниченная учетная запись, поэтому я не могу загрузить снимки снимков .... Пожалуйста, помогите мне.
Я использую OldCustomerCode в мое редактирование и отлично работало без выбора, когда я использую выбранные, он прекратит проверку –
@StephenMuecke, почему вы отметили как дубликат? –
да, я прочитал все эти ответы, и я реализую это в другом приложении, и они работают нормально, но эти проверки для типа requried или match не имеют удаленной проверки, и вы можете прочитать эту строку $ .validator.setDefaults ({ignore: ": hidden: not (.chosen-customers) "}); его среднее игнорирует все, за исключением класса «.chosen-customers». и я использую его при изменении роли. –