Jquery serialize()没有在一个表单中使用两个div

时间:2013-03-02 13:32:40

标签: javascript html jquery

我想使用单个表单将用户信息分为两部分,然后序列化这些值。以下是我在代码中执行此操作的方法 -

 <form action="">
<div id="11">
First name: <input type="text" name="FirstName" value="" /><br>
Last name: <input type="text" name="LastName" value="" /><br>
</div>

<button id="b1" >Proceed to get next two values</button>

<div id="22" style="display:none">
First name2: <input type="text" name="FirstName2" value="" /><br>
Last name2: <input type="text" name="LastName2" value="" /><br>
</div>

</form>

<button id="b2"  style="display:none">Serialize all form values</button>
<div></div>

因此在上面的代码中,我希望一次显示两个字段,同时隐藏其他两个字段。然后使用jquery serialize()序列化所有四个值。 这是我在Jquery中尝试处理这个问题的方法:

<script>
$(document).ready(function(){
  $("#b1").click(function(){
  $("#11").hide();
  $("#b1").hide();
  $("#22").show();
  $("#b2").show();
});
  $("#b2").click(function(){
    y = $("div").text($("form").serialize());
   alert("output" + y);
   });
});
</script>

当我点击按钮(ID为11)时,div2会显示,然后它会自动消失。不知道我在做什么错。请帮忙。

1 个答案:

答案 0 :(得分:0)

问题与serialize无关。

此代码:

$("div").text($("form").serialize());

将替换页面中每个DIV的内容。要定位特定的DIV,请为其指定ID。您还需要阻止butttons在单击时触发浏览器提交表单。这可以通过将type设置为button或使用脚本来防止默认

来实现

DEMO:http://jsfiddle.net/rd5Ac/

如果您在表格DIV中放置按钮,则可以保存隐藏/显示按钮所需的代码