Jquery .serialize()不处理下拉列表的值?

时间:2011-09-13 10:01:36

标签: php jquery html serialization

我认为这应该是一件简单的事情,但由于某些原因我的所有表单值都被序列化了,除了下拉列表的选定值,表格如下:

<form id="contactform">
    <label for="name">Name</label> 
    <input type="text" id=name name=name placeholder="First and last name" tabindex="1" />

    <label for="phonenumber">Phone Number</label> 
    <input type="text" id=phonenumber name=phonenumber placeholder="Please enter your phone number" tabindex="2" />

    <label for="email">Email</label> 
    <input type="text" id=email name=email placeholder="example@domain.com" tabindex="3" />

    <label for="dropdown">Please Confirm:</label> 
        <select>
            <option value="question" selected="selected">I have a question</option>
            <option value="attending">I am attending</option>
            <option value="not-attending">I am not attending</option>
        </select>


    <label for="comment">Your Message</label>
        <textarea name="comment" id=comment name=comment placeholder="Enter something here, can't think" tabindex="5"></textarea> 

    <input name="submit" type="submit" id="submit" tabindex="6" value="Send Message"/>

</form>

这就是我序列化它的方式:

$('#contactform').submit(function() {
    var query = $(this).serialize();

    $.ajax({
        type: "POST",
        url: "send.php",
        data: query,
        success: function(data) { // rest of function

最后我用来将值设置为变量的PHP是:

$dropdown     = $_POST['dropdown'];

示例标题为name=sgrggr&phonenumber=55555555555&email=me%40me.com&comment=quick+test,因此我不知道为什么没有提取下拉值。

感谢您的帮助。

2 个答案:

答案 0 :(得分:18)

您的下拉列表需要提交包含的name属性。

<select name="dropdown">
        <option value="question" selected="selected">I have a question</option>
        <option value="attending">I am attending</option>
        <option value="not-attending">I am not attending</option>
    </select>

希望这有帮助!

答案 1 :(得分:0)

我正面临着类似的情况。 SELECT标签有一个名为form的属性。定义form =“#ID_OF_THE_FORM_YOU_WANT_YOUR_SELECT_TO_ATTACH_TO”。不要忘记为您的FORM定义ID。