В диалоговом окне JQuery у меня есть четыре поля. При нажатии на кнопку Save я должен проверить и подтвердить следующиеПроблема в диалоговом окне подтверждения JQuery внутри формы submit
- Validate все обязательные поля (On представить в форме с использованием validate.js и unobstrusive.js)
- Проверьте значение выпадающего списка, и если это частичного типа, т. е. (избыточное), показать пользователю диалоговое окно подтверждения.
- Если пользователь подтвердить, нажав кнопку Да, а затем закройте диалоговое окно подтверждения и вызвать Ajax
Но проблема в том, когда я подтверждаю, нажав кнопку Да в диалоговом окне подтверждения, диалоговое окно закроется, но исполнение не снижается ,
т. Е. Сериализация данных формы и вызов Ajax для вызова веб-службы.
Пожалуйста, кто-нибудь может помочь.
$(function() {
$('form').submit(function() {
$('#result').html(" ");
var redunt = null;
redunt = $(ClientCrud_StatusCodeId).find('option:selected').text();
if ($(ClientCrud_StatusCodeId).find('option:selected').text() == "Redundant") {
$('#clientRedundantMessage2').html("Client once made redundant cannot be reactivated. Are you sure ?");
$("#RedundantMessage2").dialog(
{
autoOpen: false,
height: 170,
width: 420,
modal: true,
resizable: false,
title: "Confirmation for Redundant",
Content: "Fields cannot be left blank.",
buttons: {
"Yes": function() {
redunt = "Active";
$('#RedundantMessage2').dialog('close');
},
"No": function() {
$(this).dialog("close");
return false;
}
}
}) //.dialog("widget").draggable("option", "containment", "none");
$("#RedundantMessage2").dialog("open");
}
if ($(this).valid())
{
debugger;
if (redunt == "Active") {
$.ajax({
url: this.action,
type: this.method,
async: false,
cache: false,
data: $(this).serialize(),
error: function (request) {
$("#result").html(request.responseText);
// event.preventDefault();
},
success: function (result) {
if (result == "success") {
$.ajax({
url: "/Client/ClientGrid",
type: 'POST',
data: { "page": 0 },
datatype: 'json',
success: function (data) {
$('#grid').html(data);
},
error: function() {
alert('Server error');
}
});
$('#myEditClientDialogContainer').dialog('close');
$('#myEditClientDialogContainer').remove()
}
else {
clearValidationSummary();
var a = '<ul><li>' + result + '</li></ul>';
$('#result').html(a);
}
}
});
}
}
$("#griderrormsg1 li").hide().filter(':lt(1)').show();
return false;
});
editallowed = true;
});
Благодаря Заку. Я так старался, но не повезло. Он подходит к методу trysend, но Isvalid не работает. Поэтому я помещаю код внутри trysend в одно и то же место вызова функции. Чем выполняется валидация, но после этого он не попадает в класс контроллера, но я получаю успешный ответ и рендеринг всей страницы с сеткой в самом диалоге. – VVR147493
ой! так что извините, я пишу '$ (this) .valid()', но в этой точке 'this' не является формой, поэтому вы должны ссылаться на селектор типа' $ ('# IdOfYourForm'). valid() 'check it сейчас ... –
Спасибо Зак. Извините за задержку в возвращении. Теперь он работает нормально. – VVR147493