Railsのlink_toメソッドとclickイベント
2023-09-13 13:56:56
質問
このタイプのリンクを作成するにはどうしたらよいでしょうか。
<a href="#" onclick="document.getElementById('search').value=this.value">
メソッドを使って
link_to
をRailsで使うか?
からは解りませんでした。 Railsのドキュメント .
どのように解決するのですか?
あなたは
link_to_function
を使うことができます (Rails 4.1 で削除)。
link_to_function 'My link with obtrusive JavaScript', 'alert("Oh no!")'
また、どうしても必要な場合は
link_to
:
link_to 'Another link with obtrusive JavaScript', '#',
:onclick => 'alert("Please no!")'
しかし、生成されたHTMLにそのままJavaScriptを入れるのは 邪魔になる であり、また バッドプラクティス .
代わりに、あなたのRailsコードは単純に次のようなものであるべきです。
link_to 'Link with unobtrusive JavaScript',
'/actual/url/in/case/javascript/is/broken',
:id => 'my-link'
そして、あなたが
プロトタイプJSフレームワーク
を使用していると仮定すると、以下のようなJSを
application.js
:
$('my-link').observe('click', function (event) {
alert('Hooray!');
event.stop(); // Prevent link from following through to its given href
});
あるいは jQuery :
$('#my-link').click(function (event) {
alert('Hooray!');
event.preventDefault(); // Prevent link from following its href
});
この3つ目のテクニックを使うことで、ユーザーがJavaScriptを利用できない場合、リンクは黙って失敗するのではなく、他のページに移動することが保証されます。ユーザーがインターネット接続に問題がある (例: モバイル デバイス、公衆無線 LAN)、ユーザーまたはユーザーのシステム管理者が無効にした、予期しない JS エラー (例: 開発者のエラー) などが原因で JS が使用できない可能性があることを覚えておいてください。
関連
-
[解決済み] rspec 3 - クラスメソッドをスタブ化する
-
[解決済み] Railsマイグレーションを利用してカラムをドロップする方法
-
[解決済み] RVMでRubyのデフォルトバージョンを設定するには?
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み] Rails DBの移行 - テーブルを削除するには?
-
[解決済み] RSpecのlet()はいつ使うのか?
-
[解決済み] Rubyのクラス名を取得する方法を教えてください。
-
[解決済み】Railsの認証トークンを理解する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Rails 4 RoutingError: ルートが一致しない[POST]。
-
[解決済み] pg gem をインストールしようとすると 'libpq-fe.h' ヘッダが見つからない
-
[解決済み] Herokuの問題 : あなたが探しているページは存在しません。
-
[解決済み] railsアプリケーションでCookieのオーバーフロー?
-
[解決済み] Devise Admin Roleの追加【終了しました
-
[解決済み] rspecにおけるassignsの意味
-
[解決済み] サーバーはRailsで既に稼働している
-
[解決済み] Rspec が私のモデルクラスを認識しない。初期化されていない定数エラー
-
[解決済み] 属性を割り当てる場合、引数としてハッシュを渡す必要がある
-
[解決済み] 属性とカラムの違いは何ですか?