我需要序列化除select option
标记之外的表单中的所有字段,其中所选值是默认值。我的选择选项html标签是这样的。如果所选选项没有值,则需要从jquery serialize方法中忽略它。
<select>
<option>Select a brand</option>
<option value='1'>Sony</option>
<option value='2'>Apple</option>
<option value='3'>Nokia</option>
</select>
答案 0 :(得分:2)
感谢您的回答,但我能够通过此代码$(':not(select[value=""])', myForm).serialize()
;
答案 1 :(得分:1)
function showValues() {
var str = $('#form1').clone();
$.each(str[0], function (i, val) {
var str_new = '<pre>' + str[0][i] + '</pre>';
if (str_new === '<pre>[object HTMLSelectElement]</pre>') {
str[0][i].disabled = 'true';
}
});
var str_serialize = str.serialize();
$('#test').text(str_serialize);
console.log(str_serialize);
}
$('#sbt').click(function () {
showValues();
});
标识为var str
的form
的新form1
克隆
使用$.each()
循环克隆变量数组
使用'<pre>' + str[0][i] + '</pre>'
这些标记返回,就像选择标记<pre>[object HTMLSelectElement]</pre>
对象类型
如果匹配<pre>[object HTMLSelectElement]</pre>
,则克隆 disabled
最后我使用了serialize()
克隆并且它有效。