我是Javascript的新手。我正在使用jQuery 1.11.0和jQuery UI 1.10.4以及一个插件掩码。我在函数后面调用函数closeDialog。我收到错误0x800a139e - JavaScript运行时错误:无法在初始化之前调用对话框上的方法;试图打电话给方法'关闭'我已经搜遍了但无济于事。如何初始化对话框?任何帮助表示赞赏。
<script type="text/javascript">
$(document).ready(function () {
$("#tabs").tabs()
var source = $("#dialog").parent()
$("#dialog").dialog({
//autoOpen: true,
height: 130,
width: 325,
open: function (type, data) {
$(this).parent().appendTo(source)
},
close: function (type, data) {
$(this).remove()
}
})
$(".datepicker").datepicker()
$(".phonenumber").mask("(999) 999-9999")
$(".zipcode").mask("00000-0000")
})
function closeDialog() {
$("#dialog").dialog("close")
}
function disableTabs() {
$("#tabs").tabs({
disabled: [1, 2]
})
}
function enableTabs() {
$("#tabs").tabs({
disabled: []
})
}
function alertBox() {
alert("Please choose a valid selection.")
}
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim script As String = "closeDialog();"
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "CloseDialog", script, True)
End If
End If
End Sub
答案 0 :(得分:1)
看起来你的closeDialog函数在文档就绪事件之前被调用。 尝试使用ScriptManager.RegisterClientScriptBlock方法而不是ScriptManager.RegisterStartupScript。
答案 1 :(得分:0)
pageLoad()方法被调用更新面板的每个部分回发但是$(document).ready()不会被调用更新面板的每个部分回发。 $(document).ready()只被调用一次(在第一次加载页面时)。因此,用$(document).ready()方法编写的代码不会被初始化为每个部分回发。