在我的项目中,我想要表单的序列化数据,但是对于下拉列表,它只给出值,而不是所选择的下拉值的文本。
<select name='attend'>
<option value="1" selected="selected">Question</option>
<option value="2">Attending</option>
<option value="3">not-attending</option>
</select>
这里给出了= 1.我还想要选择的选项的文本是&#34;问题&#34;。
答案 0 :(得分:3)
serialize()
只会从元素中检索name
和value
属性。
要执行您的操作,您可以照常使用serialize()
,然后将选定的选项文字附加到其中:
var data = $('form').serialize() + '&attendText=' + $('select option:selected').text();
console.log(data);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<select name='attend'>
<option value="1" selected="selected">Question</option>
<option value="2">Attending</option>
<option value="3">not-attending</option>
</select>
</form>
&#13;
如果您想使用serializeArray()
,则需要push()
数据到结果对象,如下所示:
var data = $('form').serializeArray();
data.push({
name: 'attendText',
value: $('select option:selected').text()
});
console.log(data);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<select name='attend'>
<option value="1" selected="selected">Question</option>
<option value="2">Attending</option>
<option value="3">not-attending</option>
</select>
</form>
&#13;