2013-05-28 66 views
1

我有一个表单,我想将表单的一部分和一些html保存到我的数据库中。将表单的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()的值都是空的。 任何想法?

+0

你能告诉你的控制器动作吗? –

+0

这是巨大的,我认为这并不重要,因为从JavaScript控制台$(“.contract”).html()显示空的输入值。 – celticharp

+0

您是否试图保存整个html而不是'input'字段中的值? –

回答

2

正常检查这一点,我想我找到了答案......

$( “邮编 ”)。ATTR(“ 价值”,$( “邮编”) .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(); 
    } 

});

+0

它现在工作吗? –

+1

是的:)谢谢大家的回复 – celticharp

+0

@necronio刚才我发现这... – sachin

1

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

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

,然后设置它的HTML:

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

此外,如果你在你的DOM与class="contract"多个元素,你可能会考虑使用更严格的选择,以查明实际元素。

+0

隐藏的领域不是我的问题。隐藏字段用于将结果发布到我的控制器,这是正常工作。我的问题是,HTML本身具有空值。请参阅: celticharp

+0

另外,我只有一个合约股利。 – celticharp

2

我已经试过你的fiddle.it代码工作fine.I'm也

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

还能够将该值设置为隐藏要素所获得的价值。

请小提琴 http://jsfiddle.net/E6DCS/1/

+0

@necronio仍然如果你面对pbm意味着让我知道 – sachin

+0

对不起,也许我不能很好地表达自己。如果我在输入字段中键入内容,则这些值不会显示在警告框显示的html上。 – celticharp

+0

@necronio我明白你的问题是什么,警告是“看到”HTML,因为它最初呈现,并没有考虑到你已经放置在输入字段内的值。 –

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/

相关问题