У меня есть глобальная переменная с именем 'name', когда пользователь нажимает на кнопку, запрашивается содержимое текстовых полей, и для 'name' устанавливается содержимое, а затем имя печатается на другой странице jquery.
Моя проблема в том, что имя никогда не печатается как имя, которое было ему задано, оно всегда печатается как то, что было изначально установлено вместо него.
Вот моя функция обратного вызова:
<script type="text/javascript">
$("#finalize").click(function(e)
{
g_name = "BLAH";
return true;
});
</script>
Для простоты я установил имя «БЛА» на клик.
g_name объявляется глобально (т.е. вне области действия функции).
На другой странице jquery у меня есть:
document.write('<label for="testname">Name:</label>');
document.write('<input type="text" name="testname" id="testname" value="');
document.write(g_name)
document.write('"/>');
И g_name всегда показывается как что-то еще, независимо от того, к какому g_name изначально была инициализирована.
Кнопка, обратный вызов которой устанавливает глобальную переменную, также перемещает страницы, если это имеет значение ...
редактирование:
Хорошо, я выяснил, в чем дело, глобальная переменная записывалась до того, как была установлена. Сейчас я пытаюсь сделать это:
<script type="text/javascript">
$('#confirmscreen').bind('pageshow',function()
{
document.write('<label for="testname">Name:</label>');
document.write('<input type="text" name="testname" id="testname" value="');
document.write(g_name);
document.write('"/>');
document.write(g_phonenumber);
});
</script>
Однако jquery, похоже, не нравится использовать document.write для события 'pageshow', есть ли способ, которым я могу сделать эту работу, то есть выписать g_name, когда страница отображается, а не когда веб-сайт загружен?