我遇到的问题是,当将表单放置在对话框中时,表单中显示的元素(输入、下拉列表等)完全没有响应。我无法单击它们(甚至是下拉菜单),也无法更改它们的值(它们没有标记为只读)。当我删除封闭的表单标签时,这种情况会发生变化 - 当表单标签不存在时,可以正确访问所有输入。
作为一些背景,表单处于局部 View 中,显示在 JQuery
对话框中。不幸的是,我需要表单功能,因为我希望能够轻松获取 Controller 端的表单集合(我正在使用 MVC
)。
这似乎是一个与实现无关的问题,但如果有帮助的话我可以发布一些代码。预先感谢您!
编辑:这是我用来打开对话框的JQuery
,其中包含一些较模糊部分的注释。
_detailsDialog = $("#modal-ProductDetails").dialog({
autoOpen: false,
draggable: false,
modal: true,
resizable: false,
width: 'auto',
title: 'Item Details',
buttons: {
"Add": function () { ItemsGridView.addItemToShoppingCartFromDialog(); $(this).dialog('close'); },
"Cancel": function () { $(this).dialog('close'); }
}
});
$('#itemSummary').load( //itemSummary is a div in the View
_getEditItemViewUrl, //A URL pointing to the postback action
{ baseItemNumber: baseItemNumber },
function () {
_detailsDialog.dialog('open');
}
);
编辑:这是部分 View 代码:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Pandora.B2B.Web.Models.CatalogItemViewModel>" %>
<div>
<h3>Add / Edit Item</h3>
<% using (Html.BeginForm("EditItem", "CatalogAdmin", FormMethod.Post))
{ %>
<div class="validation-summary-errors">
</div>
<div class="floatLeft">
<%: Html.TextBox("txtReqdDescription", Model.Description, new { @class = "editableField" }) %>
</div>
<% } %>
</div>
最佳答案
检查并确保对话框实际上没有隐藏在另一个 div 后面。还要检查表单及其子项的 z 索引,并确保它们位于对话框中所在 div 的 z 索引之上。
关于jquery - JQuery 对话框内包含表单的部分 View 中的输入无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6361306/