いくつかのフォームを div コンテナーに追加します。フォームは選択したオプションに大きく依存するため、複数の可能性があるため、関連する ID はありません。
だから私がすることはただ
$('.item').each(function(index,element){
var form= $(element).find('form');
var formFields = form.serialize();
console.debug("FORM: "+ formFields);
//--- do something with those fields
});
しかし、常に空なので、この行を変更しようとします
var formFields = getFormData(form);
そしてこの機能を追加しました
function getFormData($form){
var indexed_array = {};
var selectors = "input,select";
$form.find(selectors).each(function(i,e){
var type = $(e).attr('type');
var name = $(e).attr('name');
indexed_array[name] = value;
});
$form.find('textarea').each(function(i,e){
var name = $(e).attr('name');
var value = $(e).html();
indexed_array[name] = value;
});
return indexed_array;
}
それは機能しましたが、チェックされていないチェックボックスまたはラジオボタンがかかる問題
だから私はこのオプションのセレクターを変更しようとします
var selectors = ":input"; //didnt work
var selectors = "input[type=text],input:checked,select"; //didnt work
var selectors = "input[type=text],input[type=checkbox]:checked,input[type=radio]:checked,select"; //didnt work
これらのセレクターの試行は、何も取得しませんでした。jquery がフォームをフォームとして認識せず、入力が選択されているかどうか、チェックされているかどうかを検出しませんでした。何か提案はありますか?
HTML 、覚えておいてくださいこれらの複数のことができます
<div class="column-2 item">
<div class="widget-item">
<span>12 Months Traffic Trend Unique Visits </span>
<div class="widget-option">
<form>
<div class="form-item">
<div class="form-label">Compare With Last Year</div>
<div class="form-element"><input type="checkbox" value="1" name="compareLastYear"></div>
</div>
</form>
</div>
</div>
</div>