发布网友 发布时间:2022-04-23 03:35
共2个回答
热心网友 时间:2022-04-27 20:02
呵呵,可不可以创建一个全局变量,比如A,先将confirm的返回值保存到临时变量(这是个局部变量,如TMP)中,在获取到confirm的值后,先将这个值赋给那个全局变量,如果需要的话可以先不忙返回值,先进行一些其他处理,在返回confirm的值。不晓得这个样子可否?如:
JScript code
// 先创建一个全局变量
var A = null;
function ResetPassword() {
return PageMethods.GetPassword(Password_CallBack);
}
function Password_CallBack(response) {
document.getElementById('hiddenPassword').value = response;
// 先别急着返回
var tmp = confirm('The password has been reset to ' + response + ' , do you want to send email?');
// 将返回结果赋值给全局变量
// 赋值给全局变量主要是考虑在当前函数外还要使用返回值的情况
A = tmp;
// 如果需要做一些其他的是的话,可以在这里执行,比如通过if语句判断是否需要执行等
if(A == true)
{
// 可以在这里干点事了
}
// 事情干完后就可以返回了
return tmp;
}追问不好意思,我的表述让你误解你了。
我是要把
return confirm('The password has been reset to ' + response + ' , do you want to send email?');
的值传送到
OnClientClick="return ResetPassword();" 内,即传给ResetPassword()。
热心网友 时间:2022-04-27 21:20
你好!
你的设计意图在引入ajax回调之后不可能实现了.
按你的设计目的,我建议你这样改进:
function Password_CallBack(response) {
document.getElementById('hiddenPassword').value = response;
//这里取消 return confirm('The password has been reset to ' + response + ' , do you want to send email?');
//改为:
if(confirm('The password has been reset to ' + response + ' , do you want to send email?'))
{
//在这里再发起一次ajax请求,在server端实现发送email重置密码的通知.
}
}
另一种解决方案是:
public static string GetPassword()加一个bool类型的参数sendEmail,在server端直接实现发送email.
在调用ajax请求GetPassword之前,先请用户 var sendEmail=confirm('The password has been reset to ' + response + ' , do you want to send email?');
把confirm返回的结果作为参数传给GetPassword方法.
最后 .一楼的解决方法看上去可行,但实际 运行时,A永远都是null.不会实现正确效果
有问题请再联系我,追问你好!你的回答对我的问题很有针对性。
你的第一种方案,我在
if(confirm('The password has been reset to ' + response + ' , do you want to send email?'))
{}
内再一次发起ajax请求中是需要获取'hiddenPassword'的值的,而后台的[WebMethod]是static函数,无法取得控件的值(或者说我不知道怎么取,因为一加上static,所有的控件下面冒出一条红色曲线。因此我尝试你提供的第二条方案,也遇到相同的问题。谢谢!
追答恭喜你,做完下一步就完成了:
function Password_CallBack(response) {
document.getElementById('hiddenPassword').value = response;
//这里取消 return confirm('The password has been reset to ' + response + ' , do you want to send email?');
//改为:
if(confirm('The password has been reset to ' + response + ' , do you want to send email?'))
{
//在这里再发起一次ajax请求,在server端实现发送email重置密码的通知.
//response就是你的hiddenPassword
//说实话,是不需要使用hiddenPassword这个控件的...response就已经是重置过的密码了.
}
}