[英]Call JavaScript from function based on condition
我有一个我构建的 jQuery 模态系统,如果用户输入的用户名或密码无效,我想触发模态弹出窗口。 我需要从 ASP 中的 C# 代码隐藏进行这些检查,然后如果存在无效的用户名或密码,则触发我的 JavaScript 函数: showModal("errorDiv")
。
这可能吗?
我不想将 JavaScript 绑定到按钮单击,而是以单击按钮时的代码块为条件。
所以基本上
btnSubmit_OnClick(sender, e) {
if (Username.Exists())
// Continue on
else
call showModal("errorDiv");
}
有什么帮助吗?
看看ScriptManager.RegisterStartupScript方法,它允许您在客户端执行 JavaScript,当您的异步请求在控件上结束时,此方法会将您的 JavaScript 附加到服务器端响应:
ScriptManager.RegisterStartupScript(UpdatePanel1, GetType(), "showModalScript",
"showModal('errorDiv');", true);
如果您没有使用 MS Ajax UpdatePanels 进行部分页面呈现,并且您的回传是正常的,请查看ClientScriptManager.RegisterClientScriptBlock :
ClientScript.RegisterStartupScript(GetType(), "showModalScript",
"showModal('errorDiv');", true);
无法从 Web 服务器“直接”调用 JavaScript 函数。 服务器只能生成由浏览器显示的 HTML 响应。
Web 服务器生成的 HTML 响应可以包含生成的 JavaScript。 因此,我想您可能想要做的是从btnSubmit_OnClick
中编写一些 JavaScript,这将在页面加载时触发对话框。
我对 ASP 的机制了解不多,无法在这方面为您提供帮助,但希望这能稍微解决问题。
实现此目的的一种方法是从 C# 向您的页面发出一个 javascript 变量。 然后设置一个 javascript 例程,以便在使用 jQuery 加载页面时运行,检查该变量并调用 showModal("errorDiv")。
我不确定您要在这里完成什么。 在我看来,您正试图从 JavaScript 中调用 ASP 函数。 问题是您的 ASP 在服务器上运行,而 JavaScript 在客户端上运行。
您需要创建一个返回身份验证结果的 ASP 页面。 然后你使用类似这样的东西来评估它:
.get('/urlto/authpage.asp', function(data) {
if (data='Authorized') {
do something;
}
else {
showModal('errorDiv');
}
在这种情况下,我假设您的 ASP page
在获得授权后仅返回Authorized
。
.get()
使用引号中的 URL 调用远程服务器。 第二个参数是返回结果时调用的函数。 该函数的第一个参数是该 Web 请求的文本。
有关.get()
的更多信息:http: //docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype
希望我能正确阅读你的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.