我将一些表单附加到一个 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>