我已经构建了一个jQuery模式系统,如果用户输入的用户名或密码无效,我想触发模式弹出。我需要从ASP中的C#代码隐藏中进行这些检查,如果有无效的用户名或密码,则触发我的javascript函数:showModal(“errorDiv”)。
这可能吗?
我不想将javascript绑定到按钮单击,而是按下按钮单击时代码块的条件。
所以基本上
btnSubmit_OnClick(sender, e)
{
if (Username.Exists())
//// Continue on
else
call showModal("errorDiv");
}
任何帮助?
答案 0 :(得分:5)
查看ScriptManager.RegisterStartupScript方法,它允许您在客户端执行JavaScript,当您的异步请求以控件结束时,此方法会将您的JavaScript附加到服务器端响应:
ScriptManager.RegisterStartupScript(UpdatePanel1, GetType(), "showModalScript",
"showModal('errorDiv');", true);
如果您没有使用MS Ajax UpdatePanel进行部分页面呈现,并且您的回发是正常的,请查看ClientScriptManager.RegisterClientScriptBlock:
ClientScript.RegisterStartupScript(GetType(), "showModalScript",
"showModal('errorDiv');", true);
答案 1 :(得分:1)
无法从Web服务器“直接”调用JavaScript函数。服务器只能生成浏览器显示的HTML响应。
Web服务器生成的HTML响应可以包括生成的JavaScript。因此,我想您可能想要做的是从btnSubmit_OnClick
内部编写一些JavaScript,这将在页面加载时触发对话框。
我不太了解ASP的机制,能够帮助你,但希望能稍微清理一下。
答案 2 :(得分:0)
实现此目的的一种方法是从您的C#向您的页面发出一个javascript变量。然后设置一个javascript例程,在使用jQuery加载页面时运行,该jQuery检查该变量并调用showModal(“errorDiv”)。
答案 3 :(得分:0)
我不确定你要在这里完成什么。它看起来像你试图从JavaScript中调用ASP函数。问题是你的ASP在服务器上运行,而javascrpt在客户端上运行。
您需要创建一个返回身份验证结果的ASP页面。然后你使用类似的东西来评估它:
.get('/urlto/authpage.asp', function(data) {
if (data='Authorized') {
do something;
}
else {
showModal('errorDiv');
}
在这种情况下,我假设您的ASP'页面'只是在授权时返回“授权”。
.get()使用引号中的URL调用远程服务器。第二个参数是在返回结果时调用的函数。该函数的第一个参数是该Web请求的文本。
有关.get()的更多信息:http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype
希望我能正确阅读你的问题。