Я разрабатываю проект в ASP.NET MVC5, используя SQL SERVER 2012
В этом случае в одном из сценариев для меня есть сценарий, когда пользователь нажимает кнопку "Изменить", а модальное всплывающее окно открывается с заполненным адресом электронной почты в нем (пользователь может его изменить); после того, как пользователь изменит значение электронной почты, которое должно быть сохранено в новом электронном письме.
мой код выглядит следующим образом:
<tr>
<th>Email</th>
<td>
<input id="txtEmailId" name="txtEmailId"type="text" class="form-control"
placeholder="Email" size="254" style="width: 200px;"
value="@ViewBag.EmailAddress"/>
</td>
</tr>
Код js выглядит так://сохранить адрес электронной почты профиля
$("#btnSaveProfile").click(function (e) {
debugger;
// var test = document.getElementById("txtEmail");
var userEmail = $("#txtEmailId").val();
alert(userEmail);
$.ajax({
type: "POST",
url: '/UserProfile/SaveUserDetails?EmailAddress=' + userEmail,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (data) {
if (data == "OK") {
alert("Email Saved")
}
},
error: function (msg) {
alert("Error :" + msg.responseText);
}
});
})
но он сохраняет старый адрес электронной почты.
Вы ссылаетесь на неправильный ввод? Если вы используете:
$("#txtEmailId").val();
Кнопка в модальном всплывающем окне может потребовать запуска сценария, который присваивает новое значение полю ввода $ ('# txtEmailId').
Пример html для модального всплывающего окна.
<div class="modal-pop-up">
<input type="text" id="new-email" name="new-email">
<button id="save-btn">Assign New Email</button>
</div>
Пример скрипта для модального всплывающего окна.
$("#save-btn").on('click', function(e){
var $newEmail = $('#new-email').val();
$("#txtEmailId").val($newEmail);
// close modal
});
Однако вам может не понадобиться модальное всплывающее окно, чтобы разрешить пользователю изменять одно поле в исходной форме.
Кажется, вы не назначаете свойство данных:
$.ajax({
type: "POST",
url: '/UserProfile/SaveUserDetails?EmailAddress=' + userEmail,
contentType: "application/json; charset=utf-8",
data: { EmailAddress: userEmail } /* assign data property */
dataType: "json",
async: true,
success: function (data) {
if (data == "OK") {
alert("Email Saved")
}
},
error: function (msg) {
alert("Error :" + msg.responseText);
}
});
$("txtEmail").val()
но в вашем примере разметки его не существует - вы использовалиtxtEmailId
, это просто опечатка в вашем вопросе?txtEmailId
качестве идентификатора. В вашем коде вы используете#txtEmail
. Опечатка?