勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

formでGET送信時に空のパラメータを送信しない方法(cleanQuery)

   2024/11/05  jQuery JavaScript

フォームでGET送信する際、通常だと空のパラメータも送信される。結果として「ドメイン/?param1=&param2=&param=3」みたいなURLとなり、見た目的に気になった。何か簡単な対応方法は無いかと探したところ、cleanQueryというjQueryプラグインで実現できる模様。以下に対応方法をメモ。

 

プラグインについて

残念ながら公式サイトは404エラーで表示できず、CDNも見つけられなかったため以下参考サイトのものを利用する。

(function($) {
    function cleanQuery(query){
        let get_param = [];
        $.each(query.split(`&`), function(i, param){
            if( param.split(`=`)[1] ){
                get_param.push(param);
            }
        });
        return get_param.join(`&`);
    }
    $.fn.cleanQuery = function() {
        this.on(`submit`, function(event){
            event.preventDefault();
            const query = cleanQuery($(this).serialize());
            location.href = `${this.action}?${query}`;
        });
        return this;
    };
})(jQuery);

 

使い方

プラグインを読み込んだ上で以下のようにフォームのIDを指定する。

$('#form_id').cleanQuery();

 

参考サイト

https://libproc.com/jquery-cleanquery/

 - jQuery JavaScript

  関連記事

jquery.snipeの使い方

使い方によっては面白くなりそう。 ■jquery.snipe http://ra ...

jQueryで指定した可変(レスポンシブ)要素のposition / width / heightを取得する方法

jQueryで指定した要素のposition(leftやtop) / width ...

スマホ対応のjQueryのカラーピッカープラグイン「excolor」の利用方法

以前の記事でカラーピッカープラグインのことを書いたけどスマホでは使えない。なので ...

jQueryでHTMLの特定要素をループ時に逆順で処理する方法

jQueryでリスト(li)タグ等の特定要素をeach()でループ処理する場合、 ...

FlashとjQueryを組み合わせたプラグインでWebカメラで撮影した画像をアップロード

FlashとjQueryを組み合わせたプラグインを用いてWebカメラで撮影した画 ...