0

この問題に関する多くの投稿を見てきましたが、解決策はありませんでした。以下..

<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 をページからレール アセットに移動する

他に何を試してみますか?

4

1 に答える 1

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()代わりに onを使用することを提案している理由.click()は、IE ではa.login_linkedinbutton.click().

于 2013-02-28T22:21:21.387 に答える