formでGET送信時に空のパラメータを送信しない方法(cleanQuery)
フォームでGET送信する際、通常だと空のパラメータも送信される。結果として「ドメイン/?param1=¶m2=¶m=3」みたいなURLとなり、見た目的に気になった。何か簡単な対応方法は無いかと探したところ、cleanQueryというjQueryプラグインで実現できる模様。以下に対応方法をメモ。
プラグインについて
残念ながら公式サイトは404エラーで表示できず、CDNも見つけられなかったため以下参考サイトのものを利用する。
/* * jQuery cleanQuery 2013-03-23 * Authored by guimihanui * Licensed under the MIT License (http://www.opensource.org/licenses/mit-license.php) */ (function($) { function cleanQuery(query) { var arr = []; $.each(query.split('&'), function(i, param) { if (param.split('=')[1]) { arr.push(param); } }); return arr.join('&'); } $.fn.cleanQuery = function() { this.on('submit', function(event) { event.preventDefault(); var query = cleanQuery($(this).serialize()); location.href = this.action + '?' + query; }); return this; }; })(jQuery);
使い方
プラグインを読み込んだ上で以下のようにフォームのIDを指定する。
$('#form_id').cleanQuery();
参考サイト
関連記事
-
-
jQuery UIを使って簡単にダイアログを表示させる方法
ブラウザ上でユーザーに対してちょっとした確認を行いたい場合はJavaScript ...
-
-
jQueryuiを用いてメールの入力補助(サジェスト)
autocompleteを用いた簡易なサジェストを見かけたのでメモ。 ■ソース ...
-
-
javascriptの注意点
javascriptにてチェックボックスのチェック状況をチェックを ループでまわ ...
-
-
jQueryでセレクトメニューにcheckedをつける
セレクトメニュー(セレクトボックス)で特定の項目をデフォルトで選択しておきたかっ ...
-
-
jQueryで高速化
高速化について調べる機会があったのでメモ。 ------ ・セレクタはclass ...
-
-
jQueryの最新バージョン呼び出しとバージョン確認
<script type="text/javascript" src="h ...
-
-
迷惑メール対策でフォームにreCAPTCHAを導入する方法
スパムメール対策として問い合わせフォームにreCAPTCHAを導入したいという件 ...
-
-
JavaScriptでbodyタグ内に特定のClass要素が追加された際イベントを発火させる方法
ASPを使用したサイトでページ内に特定のClass要素が追加された際にJSでイベ ...
-
-
adblock(広告削除)設定している場合はページを表示させない
iPhoneのSleipnirでネットをしていると「広告がブロックされたのでペー ...
-
-
safariのみスクロール関連のイベントが発火しない
jQueryで一定距離スクロールさせた場合に発火するイベントをプログラムしていた ...