drzip28288
2017-03-16 07:50
浏览 518

如何在form.serialize中获取下拉值和文本?

In my project I want the serialize data of the form, but for the dropdowns it gives the values only not a text of that selected value of drop down.

<select name='attend'>
    <option value="1" selected="selected">Question</option>
    <option value="2">Attending</option>
    <option value="3">not-attending</option>
</select>

Here it gives attend = 1. I also want the text of that selected option that is "Question".

图片转代码服务由CSDN问答提供 功能建议

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

 &lt; select name ='attend'&gt; 
&lt; option value =“1”selected =“selected”&gt; Question&lt  ; / option&gt; 
&lt; option value =“2”&gt;参加&lt; / option&gt; 
&lt; option value =“3”&gt; not-attendnding&lt; / option&gt; 
&lt; / select&gt; 
   
 
 

这里给出了= 1.我还希望所选选项的文本是“问题”。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doujie9882 2017-03-16 07:52
    已采纳

    serialize() will only retrieve the name and value properties from an element.

    To do what you require you can use serialize() as normal, then append the selected option text to it:

    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>

    If you wanted to use serializeArray() you would need to push() the data to the resulting object, like this:

    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>

    </div>
    
    已采纳该答案
    打赏 评论

相关推荐 更多相似问题