允许用户使用jQuery更新文本框值

时间:2014-04-02 12:26:42

标签: javascript jquery asp.net-mvc-5

我正在使用SQL SERVER 2012在ASP.NET MVC5中开发一个项目

在其中一个用于点击“编辑”按钮和模态弹出窗口的场景中,其中填充了电子邮件地址(用户可以更改);用户更改电子邮件的值后,应该存储新电子邮件。

我的代码如下:

<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);
            }
       });

})

但它保存了较旧的电子邮件地址。

2 个答案:

答案 0 :(得分:0)

您是否引用了错误的输入?你应该使用:

$("#txtEmailId").val();

答案 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);
            }
       });