В настоящее время я получаю количество строк с помощью небольшого запроса, и этот результат отправляется на мою главную страницу, созданную в asp.net.
В настоящее время я делаю это таким образом, и ни один из них не сработал для меня.
форма 1
<script type="text/javascript">
$(document).ready(function () {
var lbltext = document.getElementById('lblPlanta').innerHTML;
alert(lbltext);
});
</script>
форма 2
<script type="text/javascript">
$(document).ready(function () {
var lbltext = document.getElementById('lblPlanta').textContent;
alert(lbltext);
});
</script>
форма 3
<script type="text/javascript">
$(document).ready(function () {
value = $("#lblPlanta").text();
alert(value);
});
</script>
форма 4
<script type="text/javascript">
$(document).ready(function () {
value = $("#lblPlanta").val();
alert(value);
});
</script>
форма 5
<script type="text/javascript">
$(document).ready(function () {
var lbltext = document.getElementById('lblPlanta').value;
alert(lbltext);
});
</script>
Вот как создается этикетка. (В коде метка находится над скриптом)
<label id="lblPlanta"></label>
Изначально метка пуста, потому что она заполняется автоматически, в результате чего возвращается из БД. Я печатаю указанный результат на этой этикетке, и он печатается, но проблема в том, что я не могу получить его, чтобы присвоить его переменной.
Присвоение информации этикетке
function getPlantas() {
block();
$.ajax({
url: "../../../pagina/configuracion/empresa/confEmpresa.aspx/getPlanta",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
success: function (data) {
$("#lblPlanta").html(data.d);
$.unblockUI();
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$.unblockUI();
}
});
}
Обновлять
Видимо моя проблема в том, что я пытаюсь получить значение до того, как оно будет загружено через document.ready, поэтому я заменил его следующим методом:
$(window).load(function () {
value = $("#lblPlanta").text();
alert(value);
});
Но предупреждение продолжает появляться пустым, может ли кто-нибудь сказать мне, как запустить мой метод после того, как все будет загружено.
Вызовы AJAX не являются детерминированными в отношении того, сколько времени может потребоваться для получения результата запроса. В большинстве случаев он будет возвращен почти мгновенно, но это невозможно контролировать , сервер, который отвечает на запрос, может быть перегружен, и для ответа требуется больше времени, чем обычно, и вы не можете знать это заранее.
Поэтому выход не в том, чтобы подписываться на window.onload или dom.ready , так как код, делающий AJAX-вызов, скорее всего, начнет выполняться именно в ответ на одно из этих двух событий, а значит, пройдет еще какое-то время с момента вышеуказанные события запускаются, получают ответ от сервера и помещают результат в элемент #lblPlant .
Правильное решение уже было предложено @Naos, и оно состоит в том, чтобы подписаться на пользовательское событие в элементе #lblPlanta , который считывает его значение, и запустить это событие с конца метода успеха , который делает запрос AJAX.
Я надеюсь, что это немного проясняет проблему.
Удачи и привет!
Основываясь на вашем вопросе и комментариях, которые вы сделали и прокомментировали другие пользователи, вы можете прослушать свой документ , когда его содержимое изменится
x elemento
, например:Итак, чтобы заставить его работать в вашем коде, вы можете просто добавить это перед своей функцией и строку внутри нее, например:
Вы можете сделать это с помощью той же функции, с помощью которой вы назначаете:
Но вы не можете использовать его в
так как этот код выполняется при загрузке страницы, и в этот момент у вас все еще не загружено значение. Вы должны будете получить его, когда он вам понадобится.
Объявить глобальную переменную
Назначьте его в функции getPlantas
Как только вы это сделаете, вы можете использовать переменную завода и получить ее значение
Он предназначен (среди прочего) для того, чтобы убедиться, что ваша функция вызывается, когда все элементы DOM на странице готовы к использованию.
Я думаю, что это было бы так.