我知道这里还有很多其他类似的问题,但没有一个能解决我的问题。
我正在尝试创建一个对话框,提示用户选择是离开页面(并继续他们刚刚单击的链接)丢失他们在文本区域中输入的文本,还是留在页面上。
许多其他答案说要检查对 JQuery 的引用是否重复,所以我删除了所有引用并将以下内容放在我的 _Layout.cshtml 页面的顶部。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
其他答案还查看了是否包含 UI 的相关部分。我相信上述参考包括一切?
所以这是我的脚本,包含在相关页面的底部,以及 div(我从另一个关于如何创建对话框的答案中获得了 div 和脚本)。我已经包含了我的其他脚本,以防引起问题。
<div id="dialog" title="Confirmation Required">
Are you sure about this?
</div>
<script type="text/javascript">
$(document).ready(function ()
{
$("#dialog").dialog({
modal: true,
bgiframe: true,
width: 500,
height: 200,
autoOpen: false
});
$("a.profile").click(function (e) {
e.preventDefault();
var hrefAttribute = $(this).attr("href");
$("#dialog").dialog('option', 'buttons', {
"Confirm": function () {
window.location.href = hrefAttribute;
},
"Cancel": function () {
$(this).dialog("close");
}
});
$("#dialog").dialog("open");
});
$('a.ico').click(function (event) {
expandTextArea();
});
$('textarea#notes').blur(function () {
expandTextArea();
});
});
function expandTextArea()
{
$("textarea#notes").height($("textarea#notes")[0].scrollHeight);
}
</script>
如果有人能指出哪里出了问题,或者给我一个更好的解决方案来创建我的确认对话框,我将不胜感激。
先感谢您。
添加:
这是我在 Chrome 的控制台中遇到的错误:
Uncaught TypeError: Object [object Object] has no method 'dialog' person:403
(anonymous function) person:403
c jquery.min.js:4
p.fireWith jquery.min.js:4
x.extend.ready jquery.min.js:4
q jquery.min.js:4
Person 是页面 index.cshtml 中包含 jquery 的部分页面。
@Html.Partial("_Person", Model.Person);