php - 如何在 form.serialize 中获取下拉列表的值和文本?

标签 php jquery html

在我的项目中,我想要表单的序列化数据,但对于下拉菜单,它只提供值而不是下拉菜单所选值的文本。

<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() 只会从元素中检索 namevalue 属性。

要执行您需要的操作,您可以像往常一样使用 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/

相关文章:

php - 如何在 Symfony2 中禁用模板功能

javascript - 文字或文字中出现JSON.parse错误

javascript - 我想使用jQuery将输入值存储在数组中

javascript - Jquery.Validate 表单顶部的错误消息

python - Django 使用模板标签拆分文本字段

css - CSS意外换行

php - Laravel 本地主机工作,但 heroku 给出 500 错误

javascript - 将动态 HTML 表值发布到 jQuery AJAX

jquery - 输入验证 - 样式

javascript - 切换类不起作用?