У меня возникает ошибка javascript при попытке ссылаться на объект в ContentPlaceHolder, который находится за пределами текущего ContentPlaceHolder (они оба находятся на одной и той же дочерней странице).Ошибка JavaScript при ссылке на Master-pages ContentPlaceHolder
Ошибка: Microsoft JScript ошибка времени выполнения: Не удается установить значение «значение» объекта: объект является нулевым или не определено
Строка сценария, где происходит ошибка:
<input type="submit" name="Master$cphMainContent$btnUnregister" value="Proceed" onclick="document.getElementById('Master_cphHeadContent_TimeAlert').value = GetSeconds(); return ValidateProvider(1);" id="cphMainContent_btnUnregister" class="netButton" />
TimeAlert - скрытый объект в cphHeadContent ContentPlaceHodler.
Обычно я знаю, что объект (TimeAlert) не отображается, когда он вызывается. Однако на этот раз это одна и та же страница, поэтому я не могу понять, почему объект имеет значение null или undefined.
Любые предложения по устранению этой ошибки?
Вы уверены, что элемент управления, на который вы ссылаетесь, имеет * id * точно так же, как вы указали его? При использовании java-скрипта попробуйте ссылаться на элементы управления с их свойством * ClientID *, а не на hardcoding в скрипте. Дополнительную информацию можно найти здесь http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientid.aspx. Для этого вы можете использовать ** <% = ** и **%> **, как описано здесь: http://stackoverflow.com/questions/7889035/inline-code-in-markup-page-in -Asp-нетто-WebForms. –
Это уже существовавший код, который должен работать (за исключением того, что он не работает, когда я его запускаю) – DotNetRookie
Я предполагаю, что * id *, доступный в java-скрипте, может зависеть от того, где элемент управления находится в структуре страницы. Если * id * элемента управления жестко закодирован, и что-то изменилось в структуре страницы, код может перестать работать, потому что у элемента управления появился еще один * id *. В исходном окне браузера и проверьте, есть ли контроль с этим * id *. Если его там нет, вы можете обновить * id * до допустимого значения, но использование ** Control.ClientID ** вместо этого, вероятно, будет лучшим решением. –