Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery在IE上单击未被触发_Javascript_Jquery - Fatal编程技术网

Javascript jquery在IE上单击未被触发

Javascript jquery在IE上单击未被触发,javascript,jquery,Javascript,Jquery,我看过很多关于这个问题的帖子,但是没有一个解决方案是有效的。以下是 <script type="text/javascript"> $(document).ready(function() { $("a.login_linkedinbutton").click(function(){ $("#signup-form").submit(); return false; }); }); </script> $(文档).ready(函数(){ $

我看过很多关于这个问题的帖子,但是没有一个解决方案是有效的。以下是

<script type="text/javascript">

$(document).ready(function() {
  $("a.login_linkedinbutton").click(function(){
    $("#signup-form").submit();
    return false;
  });
});

</script>

$(文档).ready(函数(){
$(“a.login\u linkedinbutton”)。单击(函数(){
$(“#报名表”).submit();
返回false;
});
});
是我在页面的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) 使用live事件绑定单击操作 2) 将jquery移出页面并移到rails资源中

还有什么好尝试的吗?

使用
为什么使用非标准元素然后试图从中恢复来制造问题

如果你想让它看起来像一个链接,只需设置按钮的样式。但为什么要这样做呢?当用户提交表单时,建议用户转到另一个页面是一种糟糕的用户体验。大多数用户在填写表单时都会避免点击链接,因为他们害怕丢失刚刚输入的内容

如果您坚持使用该链接,您可以尝试以下方法:

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上,调用
时,DOM中不存在
a.login\u 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上,调用
时,DOM中不存在
a.login\u linkedinbutton
。click()

虽然很糟糕,但您是否尝试过
href=“javascript:$('.\35;注册表单')。submit();return false;”
?将锚更改为提交按钮如何?您是否尝试插入`javascript:void(0);“'在你的href中,而不是使用“#”?如果你不打算更改锚点,请尝试
document.getElementById(“注册表单”).submit();
并查看它是否提交表单?它至少在IE中对我有效。无法在FIDLE中测试Ie8。尽管很糟糕,但你是否尝试过
href=“javascript:$('#注册表单').submit();返回false;“
?将锚点更改为提交按钮如何?您是否尝试在href中插入`javascript:void(0);”,而不是使用“#”?如果您不打算更改锚点,请尝试
document.getElementById(“注册表单”).submit()
看看是否提交了表单?它在IE中对我有效:至少在IE9中有效。无法用小提琴测试Ie8。我同意@BLSully。你是在假设他可以改变它。他可能无法这样做的原因有很多(例如,项目的标准或需求限制)。与其假设他能做出改变,不如问他是否能做出改变。@BLSully:恰恰相反:有时候最正确的答案是“不要那样做”。:谢谢你们的帮助。@Absolutsky,不客气。让我们记住,这里的交流不是针对个人的。许多人在这里寻找他们问题的参考资料。通常的心态是修正错误,而不是设计。这就是为什么我觉得这是一个合适的答案。我相信Absolutsky有能力估计解决方案在其环境中的适用性,但如果不考虑这个答案,可能会让一些经验不足的程序员陷入这样的心态:省略提交按钮,然后点击一个链接就可以完成任务。@Jani Hytiäinen干得好!你是在教别人如何钓到好鱼,而不是用勺子喂他们。我同意@BLSully。你是在假设他可以改变它。他可能无法这样做的原因有很多(例如,项目的标准或需求限制)。与其假设他能做出改变,不如问他是否能做出改变。@BLSully:恰恰相反:有时候最正确的答案是“不要那样做”。:谢谢你们的帮助。@Absolutsky,不客气。让我们记住,这里的交流不是针对个人的。许多人在这里寻找他们问题的参考资料。通常的心态是修正错误,而不是设计。这就是为什么我觉得这是一个合适的答案。我相信Absolutsky有能力估计解决方案在其环境中的适用性,但如果不考虑这个答案,可能会让一些经验不足的程序员陷入这样的心态:省略提交按钮,然后点击一个链接就可以完成任务。@Jani Hytiäinen干得好!你在教别人如何钓到好鱼,而不是用勺子喂它们