我有一个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");
}
答案 0 :(得分:0)
我将我的asp按钮更改为常规的html按钮,似乎可以解决问题
<button onserverclick="joinGame_Click" runat="server" id="CampaignBtn" ClientIDMode="Static">Button</button>
不确定修复重复ID的问题是否也起了作用。