我有一个asp按钮,当我单击一个普通的html按钮时,我希望被一个javascript函数单击。但是,当它到达button.click()时,就没有任何效果了。如果我查看调试器,函数中的其他所有内容都会正常工作,如果我自己单击asp按钮,它将运行我期望的代码,或者如果我在控制台中调用joingameBtn_Click,它也会正确地单击该按钮。我在循环中的页面加载上动态创建了按钮,这样每个按钮都有一个onclick函数,该函数传递给每个按钮唯一的id。
function joinGameBtn_Click(campaignid) {
var temp = document.getElementById('CampaignID');
temp.value = campaignid;
var button = document.getElementById("CampaignBtn");
button.click();
}
function createFunction(id) {
return function() { joinGameBtn_Click(id); };
}
//Where the button is created
var hoverbutton = document.createElement('button');
hoverbutton.id = 'hoverbutton';
var func = createFunction(campId);
hoverbutton.onclick = func;
在阅读了其他一些帖子之后,我发现,有时动态创建的按钮可能是问题所在,因为事件侦听器没有绑定到它们。有些建议提到要确保文档已经准备好,所以我也尝试了这一点,但没有结果。
$(document).ready(function() {
$(document).on('click', '#hoverbutton', function () {
$("#CampaignBtn").click();
});
});
编辑:这是有问题的asp.net按钮。
<asp:Button ID="CampaignBtn" runat="server" Text="Button" style="display:none;" OnClick="joinGame_Click" ClientIDMode="Static"/>
以下是服务器端按钮单击函数:
public void joinGame_Click(object sender, EventArgs e)
{
Session["campaignid"] = int.Parse(CampaignID.Value);
Response.Redirect("CampaignSession.aspx");
}
发布于 2017-04-25 14:38:41
我将asp按钮改为普通html按钮,这似乎解决了这个问题。
<button onserverclick="joinGame_Click" runat="server" id="CampaignBtn" ClientIDMode="Static">Button</button>
不确定用重复id解决问题是否也起了作用。
https://stackoverflow.com/questions/43618379
复制