разрешить пользователю обновлять значение текстового поля с помощью jQuery

0

Я разрабатываю проект в 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);
            }
       });

})

но он сохраняет старый адрес электронной почты.

  • 1
    Вы используете $("txtEmail").val() но в вашем примере разметки его не существует - вы использовали txtEmailId , это просто опечатка в вашем вопросе?
  • 1
    В вашем HTML вход имеет txtEmailId качестве идентификатора. В вашем коде вы используете #txtEmail . Опечатка?
Показать ещё 6 комментариев
Теги:
asp.net-mvc-5

2 ответа

0

Вы ссылаетесь на неправильный ввод? Если вы используете:

$("#txtEmailId").val();
  • 0
    спасибо за комментарий, но была скопирована ошибка из проекта.
  • 0
    Это тот факт, что вы связываете значение тогда? значение = "@ ViewBag.EmailAddress"
Показать ещё 1 комментарий
0

Кнопка в модальном всплывающем окне может потребовать запуска сценария, который присваивает новое значение полю ввода $ ('# 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);
            }
       });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню