我正在使用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);
}
});
})
但它保存了较旧的电子邮件地址。
答案 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);
}
});