【发布时间】:2014-02-27 00:41:15
【问题描述】:
我在视图中有一个表单,该表单在应用程序启动时隐藏了部分视图,因为它仅在用户单击某个链接时显示。我在隐藏的 div 中使用 RenderAction,也许这是错误的方法。部分视图是另一个表单(来自另一个模型),他们必须在提交主表单之前提交(仅当他们单击链接时)。当用户单击“分配”链接时,主保存按钮消失,部分视图使用新的保存按钮取消隐藏。我的问题是,当我不关心局部视图时,我的主页上的提交按钮不起作用,而是我的局部视图上的按钮充当主保存按钮,而主保存按钮什么也不做。我究竟做错了什么?
$(document).ready(function () {
//hide the partial view
$('#assignment').hide();
//hide the main save button and show the partial view
$('.lauch-quick-assign').on('click', function (event) {
$('#main-save-edit').hide();
$('#assignment').show();
});
});
我的观点:
@using (Html.BeginForm())
{
//main form area
<a href="#" class="lauch-quick-assign">Assign</a>
<div id="assignment"> //this partial views form is acting as the main save button, but is not saving itself
@{Html.RenderAction("Assign", "Assignment", new { ID = Model.InfoId});}
</div>
<p> //not working
<input type="submit" value="Save" id="main-save-edit"/>
</p>
}
【问题讨论】:
-
如果您从页面中删除部分,提交按钮是否有效?
-
是表单元素中的表单元素吗?如果是,它在 HTML 中是不允许的。
-
@MattBodily,是的,一旦删除它就可以工作。@LostInComputer,我想这是我的答案,必须考虑不同的方法。
-
在这种情况下,我建议每次发送一个按钮调用上的所有数据,并使用条件验证仅在检查为真时验证部分数据,请参阅此处了解更多信息stackoverflow.com/questions/12843282/…
-
所以看起来我可以将Required 属性放在隐藏属性上,并且当它可见时验证工作。当它被隐藏时,它允许用户提交表单(正是我想要的)。你知道为什么会这样吗?带有 jQuery 的RequiredIf 类似乎在我头上,因为当下拉列表从原始值更改时我需要它触发,并且我看到的所有示例都使用离散值或另一个标志属性来确定是否有变化,老实说我会不知道如何实现该标志以更改而不发回服务器。
标签: jquery forms asp.net-mvc-4 partial-views