jquery提交选择框

时间:2011-07-05 02:13:22

标签: jquery forms listbox submit

我有一张表格。它由文本区域和选择框组成。 我想将它提交给服务器端。 以下是前端代码。 后端代码只有一个句子:“print_r($ _POST);”。它打印出用户填写和选择的数据。 问题是我可以看到数据用户已填满但我无法在选择框中看到数据。 例如,我想看看:

Array ( [name] => hello [email] => ***@hotmail.com [list] => NYC) 

但它只显示:

Array ( [name] => hello [email] => ***@hotmail.com)

也就是说,它无法在所选框中显示数据。

<form name="contact", action="ajax.php" method="POST">
    <fieldset>
      <label for="name" id="name_label">Name</label>
      <input type="text" name="name" id="name" size="30" value="" class="text-input" />

      <label for="email" id="email_label">Email</label>
      <input type="text" name="email" id="email" size="30" value="" class="text-input" />

      <select id="list" >
      <option></option>
      <option value="NYC">NYC</option>
      <option value="USA">USA</option>
      </select>

    <input type="submit" id="submit" value="Send" />
    </fieldset>
  </form>

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script>
 $(function() {
    $('#submit').click(function() {
      // validate and process form here
    $('.error').hide();
      var name = $("input#name").val();
      var email = $("input#email").val();
      var list = $("select#list").val();

      var dataString = 'name='+ name + '&email=' + email + '&list=' + list;
      alert(dataString); 
      $.ajax({
       type: "POST",
       data: dataString,
       url : "ajax.php",
     });   
   });
  });

</script>

1 个答案:

答案 0 :(得分:1)

您的代码似乎没有任何错误,但是,自己创建params列表是多余的。

您只需使用$('form[name="contact"]').serialize()序列化该表单。

但是,如果您要提交此表单以及XHR,则需要为select元素提供name属性。

此外,如果您打算通过XHR 正常提交提交,我会阻止提交的默认事件,并在XHR成功时调用submit()。否则,请求可能无法完成。