1

我有一个表单,我想将表单的一部分和一些 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() 的所有值都是空的。有任何想法吗?

4

4 回答 4

2

我已经在小提琴中尝试过你的代码。它工作正常。我也从中获得了价值

 $( ".contract" ).html();

也可以将此值设置为隐藏元素。

请检查这个小提琴 http://jsfiddle.net/E6DCS/1/

于 2013-05-28T07:54:49.797 回答
2

好吧,我想我找到了答案……

$(".postcode").attr("value", $(".postcode").val()); 必须为合同 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-28T08:18:21.660 回答
1

您不应该使用隐藏字段。您可以使用隐藏的 div:

<div id="myDiv" style="display: none;"></div>

然后设置它的html:

$( "#myDiv" ).val( $( ".contract" ).html() );

此外,如果您的 DOM 中有多个元素,class="contract"您可能会考虑使用更严格的选择器来精确定位实际元素。

于 2013-05-28T07:43:40.783 回答
1
$( "#submit-button" ).on( "click", function( e )
{
   e.preventDefault();
     $('.address').attr('value',$('.address').val());
     $('.postcode').attr('value',$('.postcode').val());
     alert($( ".contract" ).html() );
     $( ".hidden-field" ).val( $( ".contract" ).html() );
     $( "#form-register" ).submit();
 });

小提琴 http://jsfiddle.net/E6DCS/2/

于 2013-05-28T08:24:39.503 回答