$("#dialog").dialog({
title: "修改密码",
autoOpen: false,
resizable: false,
modal: true,
buttons: {
"确定": function() {
// 校验输入项
if (!valDialog(this))
return; var sOldPassword = $("#txtOldPassword").val();
var sNewPassword = $("#txtNewPassword").val();
$.ajax({
type: "post",
contentType: "application/json;charset=utf-8",
url: "WP000002.aspx/ModifyPassword",
data: "{sOldPassword:'" + sOldPassword + "', sNewPassword:'" + sNewPassword + "'}",
dataType: "json",
success: function(result) {
alert(result.d); //这里没执行
if (result.d == "") {
$(this).dialog("close");
alert("密码修改成功");
}
else {
alert(result.d);
}
},
error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
alert(status); //这里也没执行
}
});
},
"取消": function() {
$(this).dialog("close");
}
}
});
代码如上,就是很简单实现一个修改密码的功能。为什么点击“确定”按钮后通过ajax调用后台函数无效呢?
然后你alert(result)试试
alert(data);
}
看看 你传的数据对么?
要么 你要请求的那个方法地址不匹配
很奇怪,alert也出不来
另外后台代码也贴出来,应该没问题的。[WebMethod]
public static string ModifyPassword(string sOldPassword, string sNewPassword)
{
if (Utility.MD5Parse(sOldPassword) != Operator.Password)
{
return "原密码校验失败!";
} string sReturn = string.Empty;
Hashtable ParamsIn = new Hashtable();
ParamsIn.Add("@operator_no", Operator.OperatorNo);
ParamsIn.Add("@password", sNewPassword); Request sRequest = new Request();
sRequest.FunctionId = 100002;
sRequest.Params = Serializer.Serialize(ParamsIn); try
{
Service.Execute(sRequest);
}
catch (Exception ex)
{
sReturn = Utility.ErrorParse(ex);
} return sReturn;
}
data: { sOldPassword: sOld, sNewPassword: sOld },
不管加不加引号也都不行,感觉应该出在其他地方
type: "post",
url: "WP000002.aspx/ModifyPassword",
data: {sOldPassword:'" + sOldPassword + "', sNewPassword:'" + sNewPassword + "'},
dataType: "json",
success: function(result) {
alert(result.d); //这里没执行
if (result.d == "") {
$(this).dialog("close");
alert("密码修改成功");
}
else {
alert(result.d);
}
},
error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
alert(status); //这里也没执行
}
});
<!-- 修改密码对话框 -->
<div id="dialog">
<table class="onecolumn">
<tr>
<td class="caption">
原密码
</td>
<td class="content">
<input type="password" id="txtOldPassword" class="textbox" reg="^.{1,}$" tip="请输入原密码,必填" />
</td>
</tr>
<tr>
<td class="caption">
新密码
</td>
<td class="content">
<input type="password" id="txtNewPassword" class="textbox" reg="^.{1,}$" tip="新密码必填" />
</td>
</tr>
<tr>
<td class="caption">
确认新密码
</td>
<td class="content">
<input type="password" id="txtNewPasswordAgain" class="textbox" reg="^.{1,}$"" "
tip="再次输入新密码,确认两次输入相同" />
</td>
</tr>
<!-- 测试用 -->
<tr>
<td>
<input type="button" value="测试" onclick="Modify();" />
</td>
</tr>
</table>
</div>function Modify() {
var sOld = $("#txtOldPassword").val();
var sNew = $("#txtNewPassword").val();
$.ajax({
type: "post",
contentType: "application/json",
url: "WP000002.aspx/ModifyPassword",
data: "{ sOldPassword: '" + sOld + "', sNewPassword: '" + sOld + "' }",
dataType: "json",
success: function(result) {
alert(result.d);
if (result.d == "") {
$(this).dialog("close");
alert("密码修改成功");
}
else {
alert(result.d);
}
},
error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
alert(status);
}
});
}
我加了个测试的按钮,点击这个就是正常的,点击dialog生成的按钮就不行
if (!valDialog(this))
return;
这一句给返回了