我有一个网络应用程序的问题,我正在开发。表单中的输入字段是由jQuery添加的。我的表单在HTML编辑器中如下所示:
<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>我没有输入可能看起来很奇怪,但当用户按下编辑按钮时,“参数”-tag会转换为文本输入,使用下面的javascript:
$('#' + 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);
});正如您所看到的,“参数”-tags没有被DOM-inspector中的表单包装,并且没有向服务器发送任何内容(我使用Fiddler进行了调试)。我该怎么解决呢?
发布于 2012-04-22 08:06:07
将表单环绕整个表格。
您不能将表单放在表格元素内,但可以放在表格单元格外。如果浏览器尝试执行错误恢复,您会看到结果。使用a validator通常是一个好主意(尽管如果您使用JS生成它,则需要在您打算生成的标记上运行它)。
(另外,use css for layout和使用label elements而不是粗体元素)。
https://stackoverflow.com/questions/10264126
复制相似问题