我知道这里还有很多其他类似的问题,但没有一个能解决我的问题。
我正在尝试创建一个对话框,提示用户选择是否离开页面(并继续他们刚刚点击的链接)丢失他们在textarea中输入的文本,或者留在页面上。
许多其他答案都说检查是否重复了对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);