#jquery #ajax #asp.net-core
Вопрос:
У меня есть форма в модальном всплывающем окне?
<form asp-controller="Account" asp-action="Register">
<div class="form-area" id="Register-Form" hidden>
<div class="form-group">
<input type="password" name="user_Password" class="input-field" maxlength="6" id="Register-NewPassword">
</div>
<div class="form-group">
<input type="number" class="input-field" maxlength="6" autocomplete="off" id="Register-ActiveCode">
</div>
<div class="form-group text-center">
<button type="submit" onclick="return Validate_Register()" class="mybtn">Save </button>
</div>
</div>
Проверка Jquery :
function Validate_Register() {
$.post("/Account/CheckActiveCode", {
Mobile: Login_Mobile, ActiveCode: Register_Active_Value
}, function (data) {
if (data == 1) {
$.alert({
title: 'Error',
content: 'Active Code is Not True',
rtl: true,
closeIcon: true,
type: 'red',
typeAnimated: true,
buttons: {
confirm: {
text: 'Ok',
btnClass: 'btn-red',
}
},
});
return false;
}
});
return true;
}
Контроллер :
public JsonResult CheckActiveCode(string Mobile , string ActiveCode)
{
if (!_user.UserIsActivate(Mobile, ActiveCode))
{
return Json(1);
}
return Json(0);
}
Форма контроллера для отправки:
[HttpPost]
public IActionResult Register(string mobile_User, string user_Password)
{
_user.RegisterUpdateUser(mobile_User, user_Password);
return RedirectToAction("Index", "Home");
}
Я хочу, чтобы форма была отправлена, если проверка (данные==0)
Если (данные==1), форма не будет отправлена и отобразится ошибка?
Ответ №1:
Попробуйте использовать <input type="button"/>
для замены <button></button>
,и если data !=1
,отправьте форму.
html-код:
<form id="myForm" asp-controller="Account" asp-action="Register">
<div class="form-area" id="Register-Form" hidden>
<div class="form-group">
<input name="mobile_User" class="input-field" maxlength="6" id="mobile_User">
</div>
<div class="form-group">
<input type="password" name="user_Password" class="input-field" maxlength="6" id="Register-NewPassword">
</div>
<div class="form-group">
<input type="number" class="input-field" maxlength="6" autocomplete="off" id="Register-ActiveCode">
</div>
<div class="form-group text-center">
<input type="button" onclick="Validate_Register()" class="mybtn" value="Save" />
</div>
</div>
</form>
JS:
function Validate_Register() {
$.post("CheckActiveCode", {
Mobile: Login_Mobile, ActiveCode: Register_Active_Value
}, function (data) {
if (data == 1) {
$.alert({
title: 'Error',
content: 'Active Code is Not True',
rtl: true,
closeIcon: true,
type: 'red',
typeAnimated: true,
buttons: {
confirm: {
text: 'Ok',
btnClass: 'btn-red',
}
},
});
} else {
$("#myForm").submit();
}
})
}
Комментарии:
1. Мой код также отправляет форму ,я хочу,чтобы форма не была отправлена, когда (данные == 1), и чтобы отображалась ошибка, к сожалению, после того, как станет 1, форма будет отправлена
2. Да,используйте
<input type="button"/>
, он не будет отправлен, когда данные==1.3. Используете ли вы мой html-код,например,
<form id="myForm" asp-controller="Account" asp-action="Register">
в моем коде.$("#myForm").submit();
отправит форму ,которая является идентификаторомmyForm
, поэтому вы должны добавитьid="myForm"
в свою форму, как я показал в своем ответе.