私は3つのフィールドを持つHTMLフォームを持っています。 。。私は私のgetFormData($form)
メソッドを使用してこれまでの作品JSONオブジェクト(としてそれらをシリアライズしたいしかし、今、私は自分のフォームでのinputText /値なしですべてのフィールドを除外したい空の値を持たないjsonとしてフォームをシリアル化
これは私のフォームをシリアライズし、JSONオブジェクトとして保存します:
function getFormData($form){
var unindexed_array = $form.serializeArray();
var indexed_array = {};
$.map(unindexed_array, function(n, i){
indexed_array[n['name']] = n['value'];
});
return indexed_array;
}
これは私が値なしでフィールドをフィルタ処理しようとした方法である:
var form = $("#bulk-edit-fut-account-form :input[value!='']");
console.log(JSON.stringify(form));
var formData = getFormData(form);
私のHTMLフォーム:
<form id="bulk-edit-fut-account-form" class="form-horizontal" novalidate="novalidate"><div class="form-group"><label class="col-sm-3 control-label">Id<span class="asterisk">*</span></label><div class="col-sm-9"><input id="bulkAccountIds" type="text" required="" readonly="" value="118 119 " data-id="[{"Id":118},{"Id":119}]" class="form-control valid" aria-required="true"></div></div><div class="form-group"><label class="col-sm-3 control-label">Max. Requests/minute</label><div class="col-sm-9"><input type="number" name="RequestsPerMinute" placeholder="Type maximum amount of reqs/min..." class="form-control valid"></div></div><div class="form-group"><label class="col-sm-3 control-label">Request Threshold</label><div class="col-sm-9"><input type="number" name="Threshold" placeholder="Type fastest timeframe for 1 request in seconds..." class="form-control valid"></div></div><div class="form-group"><label class="col-sm-3 control-label">Comment</label><div class="col-sm-9"><textarea name="Comment" rows="5" class="form-control"></textarea></div></div></form>
問題:上記のコードを使用して
、それはまだ空のフィールドをシリアライズします(私はそれを避けたいです)。結果は{ RequestsPerMinute: '121', Threshold: '', Comment: '' }
です。値なしでフィールドをシリアル化するのを避けるにはどうすればよいですか?
は、あなたが削除してくださいすることができ除外され、 ':'あなた 'VARフォームから= $( "#bulk-edit-fut-account-form:input [value!= '']"); '? – Santi
@TylerRoper実際には正しいだろう。これで、テキストエリアである「コメント」フィールドが無視され、空の値フィールドはフィルタリングされません。私のアイデアが望みどおりに機能しないように見えます。 – kentor
私の答えをチェックし、それが動作するかどうか教えてください。 – Santi