我有一个表单,我想保存表单的一部分和一些html到我的数据库。
<div class="contract">
<label for="Company_PostCode">Postcode</label>
<input class="postcode valid" id="Company_PostCode" name="Company.PostCode" type="text" value="">
<label for="Company_Address">Address</label>
<input class="address valid" id="Company_Address" name="Company.Address" type="text" value="">
// more form elements here
<div class="text">
some text here
</div>
</div>我要做的是
$("#submit-button").on("click", function(e)
{
e.preventDefault();
$(".hidden-field").val($(".contract").html());
if (/* some checks here */)
{
// blah blah
}
else
{
//submit form normally
$("#form-register").submit();
}
});所以我有一个隐藏的字段,我用它来放置我想要的html,并将它发布到我的控制器。问题是我的表单的值都是空的。$( ".contract“).html()的所有值都为空。有什么想法吗?
发布于 2013-05-28 16:18:22
好的,我想我找到答案了……
$(".postcode").attr("value",$(".postcode").val() );必须对contract div中的每个表单元素执行此操作。所以完整的答案是...
$("#submit-button").on("click", function(e)
{
e.preventDefault();
$('.contract input').each(
function(){
$(this).attr( "value", $(this).val() );
});
$(".hidden-field").val($(".contract").html());
if (/* some checks here */)
{
// blah blah
}
else
{
//submit form normally
$("#form-register").submit();
}});
发布于 2013-05-28 15:54:50
我已经在fiddle.it中测试过你的代码运行良好。我还从
$( ".contract" ).html();还可以将此值设置为隐藏元素。
请在fiddle http://jsfiddle.net/E6DCS/1/中检查
发布于 2013-05-28 15:43:41
您不应该使用隐藏字段。您可以使用隐藏的div:
<div id="myDiv" style="display: none;"></div>然后设置它的html:
$( "#myDiv" ).val( $( ".contract" ).html() );此外,如果您的DOM中有多个带有class="contract"的元素,则可以考虑使用更严格的选择器来精确定位实际的元素。
https://stackoverflow.com/questions/16786398
复制相似问题