单击Javascript按钮无效

时间:2017-04-25 18:29:53

标签: javascript html asp.net button

我有一个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");

    }

1 个答案:

答案 0 :(得分:0)

我将我的asp按钮更改为常规的html按钮,似乎可以解决问题

<button onserverclick="joinGame_Click" runat="server" id="CampaignBtn" ClientIDMode="Static">Button</button>

不确定修复重复ID的问题是否也起了作用。