gpt4 book ai didi

c# - Ajax 脚本管理器阻止了 jquery?

转载 作者:行者123 更新时间:2023-11-28 09:47:00 26 4
gpt4 key购买 nike

我创建了一个简单的页面只是为了测试这一点。

我的页面将有一个文本框和一个按钮。如果您单击按钮,服务器端的按钮单击事件将在文本框中写入一些文本。

然后我有一个 jQuery 函数来检测文本框的 Enter 按键。

如果它检测到输入按键,它将单击该按钮。

标记:

<asp:TextBox ID="txtTest" runat="server"></asp:TextBox>
<asp:Button ID="btnClick" runat="server" Text="test" onclick="btnClick_Click" />
<script type="text/javascript">
$('#<%=txtTest.ClientID%>').keypress(function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) { //Enter keycode
$('#<%=btnClick.ClientID%>').click();
}
});
</script>

隐藏代码:

protected void btnClick_Click(object sender, EventArgs e)
{
txtTest.Text = "btnclick click event";
}

每次刷新都可以正常工作。

然后我实现了一个 ScriptManager。

标记:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="txtTest" runat="server"></asp:TextBox>
<asp:Button ID="btnClick" runat="server" Text="test" onclick="btnClick_Click" />
<script type="text/javascript">
$('#<%=txtTest.ClientID%>').keypress(function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) { //Enter keycode
alert('hihi');
$('#<%=btnClick.ClientID%>').click();
}
});

</script>
</ContentTemplate>
</asp:UpdatePanel>

隐藏代码:

protected void btnClick_Click(object sender, EventArgs e)
{
txtTest.Text = "btnclick click event";
}

然后它仅适用于第一次输入,但不适用于第二次输入。

有人遇到过这样的问题吗?

最佳答案

只需将此代码块放在 scriptmanager 标记之外即可正常工作

 <script type="text/javascript">
$('#<%=txtTest.ClientID%>').keypress(function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) { //Enter keycode
alert('hihi');
$('#<%=btnClick.ClientID%>').click();
}
});

</script>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
...
...

更新

为什么处理按键的代码不在 $(document).ready 内?

$(document).ready(function() {
$('#<%=txtTest.ClientID%>').keypress(function (e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13) { //Enter keycode
alert('hihi');
$('#<%=btnClick.ClientID%>').click();
}
});
});

查看以下thread ,其中提到的问题是相似的。但解决办法不是放在document.Ready里面,而是每次通过调用RegisterStartupScript来绑定(bind)绑定(bind)点击的脚本

关于c# - Ajax 脚本管理器阻止了 jquery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11665222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com