jQuery序列化所选选项的值,而不是标签

时间:2017-10-20 09:06:19

标签: javascript php jquery ajax serialization

我有一个选择控件:

<select name="AdditionalCategory">
  <option value="1">Category 1</option>
  <option value="2">Category 2</option>
</select>

然后我使用jQuery发送AJAX请求,序列化表单:

$.post("../../d/up.php",$("#main").serialize(),
          function(data){

但是,如果我选择类别1,则serialize()函数会序列化标签,而不是选项的值。因此请求将是up.php/?AdditionalCategory=Category 1

有没有办法告诉函数发送值,如下所示: up.php/?AdditionalCategory=1

1 个答案:

答案 0 :(得分:2)

它应该可以正常工作,但HTML表单中有一个小错误,即<option>的结束标记</value>,而不是</option>

检查下面的工作代码:

&#13;
&#13;
$(function() {

  $("#but").click(function() {
    console.log($("#main").serialize());
  });

});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="main">
  <select name="AdditionalCategory">
  <option value="1" selected>Category 1</option>
  <option value="2">Category 2</option>
</select>
</form>

<button id="but">Click me</button>
&#13;
&#13;
&#13;