如何通过jQuery序列化div标签的子元素?

时间:2015-04-18 13:19:52

标签: javascript jquery html

我使用jQuery和ajax。

在第一个。这是我的HTML。

<form id="frm" name='frm' action="." method="post">
  <div style="position: absolute; top:270px;">
  <div id='mybuttons'>
    <input type="submit" class="buttonbig3" name="btn1" value="1" /><br />
    <input type="submit" class="buttonbig3" name="btn2" value="2" /><br />
  </div>
  <input id="hidden-qid" type="hidden" name="set" value="hoge" />
  </div>
</form>

并且,我在JS中创建了如下所示的提交函数。

  $('#frm').submit(function() {
var serialized_date = $('form#frm').serialize();
console.log(serialized_date);

然而,&#34; console.log&#34;记录&#34;设置&#34; paramater。 但是,btn1或btn2无法显示日志。

我猜它是mybuttons div标签的孩子。

我不想删除标签。因为,我通过javascript动态创建html。

$('#mybuttons').innerHTML = "<input type="\submit\" class="\buttonbig3\" name=\"btn1\" value=\"1\" /><br />";

你能告诉我如何序列化子标签。

3 个答案:

答案 0 :(得分:1)

我希望会有所帮助,只需找到提交并添加到序列化

的按钮即可

$('#frm').submit(function() {
  var serialized_date = $('form#frm').serialize();
  var btn = $(document.activeElement);
  serialized_date += "&" + btn.attr("name") + "=" + btn.val();
  console.log(serialized_date);
});
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="frm" name='frm' action="." method="post">
  <div id='mybuttons'>
    <input type="submit" class="buttonbig3" name="btn1" value="1" /><br />
    <input type="submit" class="buttonbig3" name="btn2" value="2" /><br />
  </div>
  <input id="hidden-qid" type="hidden" name="set" value="hoge" />
</form>

答案 1 :(得分:0)

序列化不要向数据添加提交按钮值,因为提交按钮应仅用于提交表单,而不是用于发送特定数据。你必须改变类型=&#34;提交&#34;如果您想要从中获取特定数据,请使用其他内容。

答案 2 :(得分:0)

<强> serialize() docs

  

.serialize()方法以标准URL编码方式创建文本字符串   符号。它可以作用于已选择个体的jQuery对象   表单控件,例如,,和:$(&#34;输入,   textarea,选择&#34; ).serialize();

按钮无法序列化。只有具有用户输入的元素才能被序列化,如文本框,单选按钮等

如果您在div中放置一个输入框,您将在console.log中找到它。

 <div id='mybuttons'>
    <input type="submit" class="buttonbig3" name="btn1" value="1" /><br />
    <input type="submit" class="buttonbig3" name="btn2" value="2" /><br />
    <input id="hidden-qid" type="hidden" name="rias" value="hoge" />
 </div>

现在,如果您尝试提交表单,您将在div元素中获得input文本。所以这里不涉及儿童元素。