我使用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 />";
你能告诉我如何序列化子标签。
答案 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
文本。所以这里不涉及儿童元素。