2012-04-22 23 views
0

我有一个正在处理的Web应用程序出现问题。表单中的输入字段由jQuery添加。我的形式看起来像这样的HTML编辑器:根据DOM检查器,FORM看起来是空的

<form id="profile" method="post" action="Profile/UpdateProfile"> 
     <tr><td><b>Namn:</b></td><td><parameter name="Name" class="transform">@ViewBag.Name</parameter></td></tr> 
     <tr><td><b>Address:</b></td><td><parameter name="Address" class="transform">@ViewBag.Address</parameter></td></tr> 
     <tr><td><b>Postaddress:</b></td><td><parameter name="ZIP" class="transform">@ViewBag.ZIP</parameter></td></tr> 
     <tr><td><b>Personnummer:</b></td><td><parameter name="Pnumber" class="transform">@ViewBag.Pnumber</parameter></td></tr> 
    </form> 

但现在看来,这样的DOM巡视员:

<form id="profile" method="post" action="Profile/UpdateProfile"></form> 
<tbody><tr><td><b>Namn:</b></td><td><parameter name="Name" class="transform">Anton Gildebrand</parameter></td></tr> 
     <tr><td><b>Address:</b></td><td><parameter name="Address" class="transform"></parameter></td></tr> 
     <tr><td><b>Postaddress:</b></td><td><parameter name="ZIP" class="transform">0</parameter></td></tr> 
     <tr><td><b>Personnummer:</b></td><td><parameter name="Pnumber" class="transform"></parameter></td></tr> 

</tbody> 

它可能看起来奇怪,我没有投入,但当用户按下编辑键,在“参数” - 标记转换成使用这个JavaScript textinputs:

$('#' + id + ' .transform').each(function (index) { 
     var val = $(this).html(); 
     $(this).html(''); 
     var tag = $(this).parent().html(); 
     var newTag = tag.replace('<parameter', '<input type="text" value="' + val + '"'); 
     newTag = newTag.replace('</parameter', '</input'); 
     $(this).parent().html(newTag); 
    }); 

正如你所看到的“参数”标签都有效不是由DOM督察的形式包装,和没有发布(我调试了我们Fiddler)到服务器。我如何解决它?

+1

?!你得到了',​​'

'这是一个无效的标记! – gdoron2012-04-22 00:07:44

回答

3

将表格包裹在整个表格中。

您不能将表格放入表格元素内,但不在表格单元格之外。如果浏览器尝试执行错误恢复,则会看到结果。使用a validator通常是一个好主意(尽管如果您使用JS生成它,您需要在您打算生成的标记上运行它)。

(另外,use css for layout和使用label elements而不是粗体元素)。

+0

非常感谢!这对我来说是新的:) – 2012-04-22 00:07:45

相关问题