我在javscript中有以下代码打开一个带有yes和no选项的确认对话框,但是我在打开确认对话框时遇到了一些问题。
function ConfirmDialog(obj, title, dialogText) {
if (!dialogConfirmed) {
$('body').append(String.Format("<div id='dialog' title='{0}'><p>{1}</p></div>",
title, dialogText));
$('#dialog').dialog
({
height: 150,
modal: true,
resizable: false,
draggable: false,
close: function (event, ui) { $('body').find('#dialog').remove(); },
buttons:
{
'Yes': function () {
$(this).dialog('close');
dialogConfirmed = true;
GetRadWindow().close();
if (obj) obj.click();
},
'No': function () {
$(this).dialog('close');
}
}
});
}
return dialogConfirmed;
}
这是我在aspx页面上的代码
<script type="text/javascript" src="Scripts/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="Scripts/jquery-ui-1.8.2.custom.min.js"></script>
<script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
<input id="Button2" type="button" value="Cancel" onclick="return ConfirmDialog(this, 'Confirmation', 'Are you sure want to close the window?');" />
答案 0 :(得分:2)
可能是您在页面1.4.1和1.4.2中包含两个版本的jquery吗?请更改并查看。
还有javascript中的String.Format?是你写的一些方法吗?请改用sprintf。
答案 1 :(得分:1)
此代码到达第3行并在JavaScript中看到String.Format
并停止执行。
jQuery / JavaScript中有 no String.Format。如果你特别关注using String.Format in JavaScript,请自己创建一个。
String.prototype.format = function() {
var formatted = this;
for (var i = 0; i < arguments.length; i++) {
var regexp = new RegExp('\\{'+i+'\\}', 'gi');
formatted = formatted.replace(regexp, arguments[i]);
}
return formatted;
};
并像
一样使用它$('body').append("<div id='dialog' title='{0}'><p>{1}</p></div>".format(title, dialogText));