Я новичок в 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
Метод pageLoad() вызывается для каждой частичной обратной передачи панели обновления, но $ (document).ready() не вызывается для каждой частичной обратной передачи панели обновления. $ (document).ready() вызывается только один раз (в первый раз при загрузке страницы). Следовательно, код, написанный в методе $ (document).ready(), не будет инициализирован для каждой частичной обратной передачи.
Похоже, ваша функция closeDialog вызывается до завершения документа. Попробуйте использовать метод ScriptManager.RegisterClientScriptBlock вместо ScriptManager.RegisterStartupScript.