0

ie9 では、このコードは機能します。

   <span id="ForwardNavigationEnabled" style="display:inline;">
        <a class="imagelink" href="@Url.Action("Details", "Subcontractor", new { id = Model.Navigator.NextPageId })">
            <input id="btnNext" type="button" value="Next >|" />
        </a>
        <a class="imagelink" href="@Url.Action("Details", "Subcontractor", new { id = Model.Navigator.LastPageId })">
            <input id="btnLast" type="button" value="Last >>|" />
        </a>
    </span>

つまり、ボタンをクリックすると、ハイパーリンクの href イベントが発生します。ie8 では、ハイパーリンクは無視され、代わりにボタンのクリック イベントが発生しますが、これはどこにも行きません。

ie8 の 1 つの修正は、ボタンにクリック イベントを与えて、そのように移動することです。別の解決策は、ボタンをボタンの画像に置き換えることです。

しかし、よりきちんとした解決策はありますか?

4

2 に答える 2

2

jQueryを使用したクイックソリューション:

$("a > button").on('click', function() { 
    location.href = $(this).closest("a").attr("href");
}); // fixed

この件に関する詳細

w3c は link タグ内のボタンに問題がないため、これは別の MS サブ標準です。

探している効果を得るには、<a>タグを捨てて、ブラウザーを目的の場所にナビゲートする単純なイベント ハンドラーを各ボタンに追加します。

でも; 通常のリンクが機能するのには理由があります。

  • ユーザーはリンクを即座に認識し、他のページに移動したことを理解できます
  • 検索エンジンはそれらをリンクとして識別し、それらをたどることができます
  • スクリーンリーダーはそれらをリンクとして識別し、ユーザーに適切にアドバイスできます
  • また、基本的なナビゲーションを実行するためだけに JavaScript を有効にするという、まったく不要な要件も追加します。これは Web の基本的な側面であるため、このような依存関係は受け入れられないと考えています。

必要に応じて、背景画像または背景色、境界線、およびその他の css テクニックを使用して、リンクをボタンのように見えるようにスタイル設定できますが、実際には通常のリンクにする必要があります。

もっと?

アンカー リンク内のボタンは Firefox では機能しますが、Internet Explorer では機能しませんか?

于 2013-02-19T09:36:37.897 に答える
2

要素<input>内に (または任意のフォーム コントロール)をネストすることは無効な HTMLです。<a>

リンク希望の方は。リンクとリンクのみを使用してください。ボタンのように見せたい場合は、CSSを使用してください。

于 2013-02-19T09:31:11.393 に答える