在外部用户控件上的 aspx 按钮上触发 Click 事件
Posted
技术标签:
【中文标题】在外部用户控件上的 aspx 按钮上触发 Click 事件【英文标题】:Trigger Click Event on aspx Button on an External User Control 【发布时间】:2020-05-09 20:32:35 【问题描述】:在下面的 subscribe.aspx 文件中...
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="subscribe.aspx.vb" Inherits="Company.Website.clsSubscribe_Page" %>
<%@ Register TagPrefix="uc1" TagName="ucSubscribe" Src="controls/ucSubscribe.ascx" %>
<!doctype html>
<html class="no-js" lang="">
<head>
<uc1:ucHtmlHead ID="HtmlHead" Title="Subscribe to our Newsletters" Description="Subscribe OurNewsletter"
Keywords="newsletter, subscription" runat="server" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://www.google.com/recaptcha/api.js?render=6LdV088RFFFEaKMW0y_cxHAr8Ok-l3Ks3xO9"></script>
</head>
<body>
<form id="formMain" runat="server">
<div class="internal">
<div class="content">
<a name="contentContainer" class="hide"></a>
<div class="newslettersign-up">
<div id="centreColumn" role="main">
<uc1:ucSubscribe ID="ucSubscribe" runat="server" />
</div>
</div>
</div>
</div>
</form>
<script type="text/javascript">
function VerifyCaptcha()
grecaptcha.ready(function ()
grecaptcha.execute('6LdV088RFFFEaKMW0y_cxHAr8Ok-l3Ks3xO9').then(function (token)
$.ajax(
type: "POST",
url: "subscribe.aspx/VerifyCaptcha",
data: "'response':'" + token + "'",
async: false,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response)
if (response.d != "null")
var obj = JSON.parse(response.d);
var success = obj.success;
var score = obj.score;
if (success == false || score < 0.5)
ShowCaptchaFailureMsg();
else
// Check score
$("[id$='cmdSubscribe']").trigger('click');
return true;
else
ShowCaptchaFailureMsg();
);
);
);
function ShowCaptchaFailureMsg()
// Show message on website accordingly
alert("this is a bot..");
</script>
</body>
</html>
我愿意
$("[id$='cmdSubscribe']").trigger('click');
触发点击 ucSubscribe 用户控件上的 asp 按钮
<input id="someid" type="button" value="Subscribe" onclick="return VerifyCaptcha();">
<asp:Button ID="cmdSubscribe" Text="Subscribe" runat="server" alternatetext="Subscribe" Style="display: none;"></asp:Button>
但是,此触发器不会触发点击上述按钮。不知道为什么。
需要另一种方法来触发上述按钮上的此点击事件。
【问题讨论】:
你看到渲染的 htlp 了吗?页面上的cmdSubscribe
是一样的还是需要加上<%=cmdSubscribe.ClientID%>
如何使用__doPostBack
【参考方案1】:
由于问题可能来自不同的问题,以下列表将帮助您解决代码问题:
代码暴露,javascript函数VerifySub
没有被调用,因此gresub.ready
函数也没有被调用,不会触发点击事件;
如果您的按钮有 id,您可以改用 $("#cmdSubscribe").click();
jquery syntax;
什么是gresub
?
【讨论】:
我已经用更准确的内容更新了上述问题。 我也试过 $("#cmdSubscribe").click();但对我不起作用。以上是关于在外部用户控件上的 aspx 按钮上触发 Click 事件的主要内容,如果未能解决你的问题,请参考以下文章