在我的项目中,我想要表单的序列化数据,但对于下拉菜单,它只提供值而不是下拉菜单所选值的文本。
<select name='attend'>
<option value="1" selected="selected">Question</option>
<option value="2">Attending</option>
<option value="3">not-attending</option>
</select>
这里它给出了 attend = 1。我还想要所选选项的文本“问题”。
最佳答案
serialize()
只会从元素中检索 name
和 value
属性。
要执行您需要的操作,您可以像往常一样使用 serialize()
,然后将选定的选项文本附加到它:
var data = $('form').serialize() + '&attendText=' + $('select option:selected').text();
console.log(data);
<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>
如果您想使用 serializeArray()
,您需要将数据push()
到结果对象,如下所示:
var data = $('form').serializeArray();
data.push({
name: 'attendText',
value: $('select option:selected').text()
});
console.log(data);
<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>
关于php - 如何在 form.serialize 中获取下拉列表的值和文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42828152/