我在这个问题上看过很多帖子,但没有一个解决方案有效。以下..
<script type="text/javascript">
$(document).ready(function() {
$("a.login_linkedinbutton").click(function(){
$("#signup-form").submit();
return false;
});
});
</script>
是我在页面的body标签中的内容。身体也是形式,在IE中的html就像这样显示..
<form accept-charset="UTF-8" action="/auth/linkedin" class="well form-inline" id="signup-form" method="post">
<a class="login_linkedinbutton" href="#">Login using Linkedin</a>
</form>
在IE8中,当单击表单中的链接时,jquery不会被触发。它适用于Chrome和Firefox。我试过了:
1)使用直播事件绑定点击操作 2)将jquery移出页面并进入rails资产
还有什么想法可以尝试吗?
答案 0 :(得分:5)
使用<input type="submit" value="Login using Linkedin">
为什么通过使用非标准元素然后尝试从中恢复来创建问题?
如果您希望它像链接一样,只需设置按钮的样式。但为什么呢?建议用户在提交表单时转到另一个页面的用户体验很差。大多数用户在填写表单时都会避免点击链接,因为他们害怕丢失他们刚刚输入的内容。
如果您坚持使用该链接,可以尝试:
var onLinkedInLogin = function(e){
e.preventDefault(); // stops the link processing
$("#signup-form").submit();
// add return false; if you want to stop event propagation also
// equivalent to calling both, e.preventDefault() and e.stopPropagation().
};
$(document).on('click', 'a.login_linkedinbutton', onLinkedInLogin);
我建议在.on()
上使用.click()
的原因是我想在IE上,当您调用{{1}时,a.login_linkedinbutton
在DOM中不存在}。