目前,我们有一个编辑用户对话框(fancybox),它有一个链接,基本上用另一个用于更改密码的fancybox 对话框替换了这个对话框。在您单击更改密码对话框上的提交按钮之前,一切似乎都正常运行。什么都没有发生。我检查了提琴手,没有提出任何请求。我检查 Firefox 以验证更改密码控件实际上是否包含在正确的表单标签中,并且确实如此。是什么赋予了?我通过网络查找了类似的问题,并且有一些问题,但没有一个使用 MVC4,我不太了解它们。
这些花式框模式正在通过局部视图加载。例如,打开第一个对话框的链接就是 href="EditUserPartialAction" 的链接。效果很好。通过第一个模型的链接打开的模型做同样的事情,它只是有一个 href="ChangePasswordPartialAction"。它完美加载。它只是不做任何事情的按钮。
这是正在生成的html。您可以看到表单看起来正确并且应该可以工作(除非我忽略了某些东西)。再一次,什么都没有发生。没有提出任何请求,更不用说错误了。取消按钮起作用,它只是将此对话框替换为先前的编辑用户对话框。
<div class="fancybox-wrap fancybox-desktop fancybox-type-ajax fancybox-opened" tabindex="-1" style="width: 533px; height: auto; position: fixed; top: 20px; left: 685px; opacity: 1; overflow: visible;">
<div class="fancybox-skin" style="padding: 15px; width: auto; height: auto;">
<div class="fancybox-outer">
<div class="fancybox-inner" style="overflow: auto; width: 503px; height: 279px;">
<div id="modal-page">
<h1>Change Password</h1>
<form method="post" action="/AccountUser/ChangePassword?userId=0">
<div class="field_wrapper password">
<label for="NewPassword">NewPassword</label>
<input id="NewPassword" type="password" placeholder="Password" name="NewPassword">
</div>
<div class="field_wrapper password">
<label for="ConfirmPassword">ConfirmPassword</label>
<input id="ConfirmPassword" type="password" placeholder="Confirm Password" name="ConfirmPassword">
</div>
<div class="field_wrapper submit">
<a class="close_modal gradient change-password" href="/AccountUser/EditUserPartial?userId=0">Cancel</a>
<input class="gradient" type="submit" value="Change" name="update"/>
</div>
</form>
</div>
</div>
</div>
<a class="fancybox-item fancybox-close" href="javascript:;" title="Close"></a>
</div>
</div>
更新:确实没有任何真正添加的 jquery/javascript。除了 fancybox 库本身之外,这就是添加的所有内容,它们只是将它们连接到几个类:
// main.js
$(document).ready(function() {
$('.edit, .addUser, .delete').fancybox({
maxWidth : 486,
autoSize : true,
});
});
// plugins.js
// Avoid `console` errors in browsers that lack a console.
(function() {
var method;
var noop = function () {};
var methods = [
'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
'timeStamp', 'trace', 'warn'
];
var length = methods.length;
var console = (window.console = window.console || {});
while (length--) {
method = methods[length];
// Only stub undefined methods.
if (!console[method]) {
console[method] = noop;
}
}
}());
// Place any jQuery/helper plugins in here.