2012-02-24 27 views
0

我的页面有两种形式,分别是form1和form2。现在,当形成一个被提交,然后我设置的隐藏字段的值形式2:HTML/JQuery多个表单问题

$('#form1').submit(function(){ 
    $("#hiddenfield").val($(this).serialize()) ; 
    alert($("#hiddenfield").val()); 
    return true; 
    }); 

$('#form2').submit(function(){ 
    alert($("#hiddenfield").val()); 
    return true; 
    }); 

在第一个警报的数据正确显示,当我提交sencond形式,但是,该值为空。什么可能是这个问题?

+2

可能是因为页面重新加载是提交第一种形式后? – 2012-02-24 13:38:44

+2

提交第一个表单后会发生什么?你还在同一页吗? – fcalderan 2012-02-24 13:39:35

+0

可能只是在HiddenField输入中使用EnableViewstate = true属性。 – Jigs 2012-02-24 13:46:49

回答

2

问题可能是因为您的提交函数返回true,浏览器将发布表单,从而重新加载您的页面。因此,当你发布它时,你的第二个表单是空的。如果您不希望表单重新加载页面,您的提交函数将不得不返回false,以阻止浏览器以常规方式发布表单。在这种情况下,您当然必须通过ajax发布表单,因为从提交函数返回false将停止表单 - 将所有表单一起发送。

您可以尝试用下面的代码替换您发布的代码,然后尝试先提交第一个表单,然后再提交第二个表单,以查看是否存在问题。如果第二种形式提交,然后提醒的实际值,而不是空的,你找到了你的问题的根源:

$('#form1').submit(function(){ 
    $("#hiddenfield").val($(this).serialize()) ; 
    alert($("#hiddenfield").val()); 
    return false; 
    }); 

$('#form2').submit(function(){ 
    alert($("#hiddenfield").val()); 
    return false; 
    });