将表单的html值保存到数据库时,值为空

时间:2013-05-28 07:38:42

标签: javascript jquery html asp.net-mvc forms

我有一个表单,我想将表单的一部分和一些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并将其发布到我的控制器。 问题是我的表格的价值都是空的.. $(“。conttract”)。html()将其所有值都清空。 有什么想法吗?

4 个答案:

答案 0 :(得分:2)

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

获得了价值
 $( ".contract" ).html();

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

请小提琴检查一下   http://jsfiddle.net/E6DCS/1/

答案 1 :(得分: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();
  }

});

答案 2 :(得分:1)

您不应使用隐藏字段。你可以使用一个隐藏的div:

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

然后设置其html:

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

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

答案 3 :(得分: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/