[jQuery] GETリクエスト時に空のinputパラメータを送信しない方法

フォームからGETリクエストをする時に値が空のパラメータがあると、

空でクエリーを送信することになります。

不要なクエリーは送信するとURLが長くなり見栄えも悪くなります。

そんな時は「cleanQuery」を使用することで不要なクエリーを削除してGETリクエストを送信できますので紹

介します。

目次

cleanQueryの使用方法

「cleanQuery」はguimihanuiさんがGithub上で公開しているJQueryの追加機能になります。

参考:jquery.cleanQuery.js

/*
* 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);

上記のコードを読み込んだ後に以下のようにformのidを指定します。

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

cleanQueryの解説

JQueryの「serialize」を利用することで利用することで実装しています。

一度すべての要素をシリアライズして空のクエリーは削除しています。

参考:.serialize()

参考:値が空のパラメータがクエリー文字列に入らないGETのフォーム

jQuery 仕事の現場でサッと使える! デザイン教科書 (Webデザイナー養成講座)posted with ヨメレバ

吉本 集 技術評論社 2015-04-21

Amazonで探す

Kindleで探す

楽天ブックスで探す

楽天koboで探す

7netで探す

hontoで探す

e-honで探す

紀伊國屋書店で探す

よかったらシェアしてね!
  • URLをコピーしました!
目次