序列化选择选项字段

时间:2013-08-16 04:48:05

标签: jquery serialization

我需要序列化除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>

2 个答案:

答案 0 :(得分:2)

感谢您的回答,但我能够通过此代码$(':not(select[value=""])', myForm).serialize();

实现

答案 1 :(得分:1)

DEMO

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()克隆并且它有效。