OK しばらく前に、フォーム内のすべてのフィールドを取得して JSON オブジェクトにシリアル化する、jQuery 用のこの素晴らしい小さなアドオン スタイル スクリプトを見つけました。残念ながらしかし。他に何も提供されていない場合、この関数はプレースホルダーテキストを使用することがわかりました。その場合、プレースホルダーのテキストがそこにあるテキストである場合は、null に設定することをお勧めします。
この小さなスニップにそれを追加する方法はありますか?
(function($) {
$.fn.serializeFormJSON = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
})(jQuery);
編集: つまり、プレースホルダー属性は次のようなものである可能性がありplaceholder="First name"
、入力を取得するときに JavaScript がそれを実際の値として扱っているようです。そのため、名フィールド (オプション) のエントリを「名」として取得しています。したがって、私が望むのは、上記のスニップがオンになっている現在のフィールドを比較する方法を理解し、そのフィールドの現在のプレースホルダーを表示することです (selects のようなものがその属性を持っていない場合)。そして、プルされている値がプレースホルダー属性に一致する場合、そのフィールドを作成中のオブジェクトに追加したいのですがnull
、プレースホルダーテキストの代わりに