当用户从文本框中按Enter键时,我正在尝试触发按钮的单击事件。这是我的代码:
<script type="text/javascript" language="javascript">
$(document).ready(function () {
$("#<%= txtSearch.ClientID %>").keypress(function (e) {
if (e.keyCode == 13) {
alert("Hello");
$("#<%= lbSearch.ClientID %>").click();
}
});
});
</script>
<asp:TextBox ID="txtSearch" runat="server" />
<asp:LinkButton ID="lbSearch" runat="server" onclick="lbSearch_Click" />
我的所有点击事件都会重定向到另一个页面。
当我点击按钮时,它可以工作。当我从IE,Firefox或Chrome中的文本框中按Enter键时,它可以正常工作。
但是当我在Safari中按Enter键时,页面只会执行回发,即使jQuery函数被点击(警报显示)。
这有什么原因吗?
答案 0 :(得分:6)
确定它是回车键后,您需要运行e.preventDefault();
。否则,javascript之前的表单发布有机会完成运行。
答案 1 :(得分:1)
可以通过对象方法完成:
function RaiseClickEvent(id) {
var clickObject = {
click : document.getElementById(id).onclick
};
clickObject.click();
}
var id = "<%= lbSearch.ClientID %>";
RaiseClickEvent(id);