Эти вопросы возникли из примера одностраничного приложения, расположенного здесь. Может ли кто-нибудь объяснить, почему попытки установить значение элемента управления вводом с помощью jQuery работают/не работают при следующих условиях?
Я включу постоянный HTML-код, а затем представлю серию строк Javascript, поведение которых я не могу объяснить.
Сначала HTML.
Если я запускаю этот код, он работает так, как ожидалось, и поле ввода имеет значение 99. Обратите внимание, что я устанавливаю значение в двух разных местах из-за проблемы, обнаруженной в следующем примере.
$("#regionfield").val(44);
var $entry = $("div").find(".data-container");
$entry.find("#regionfield").val(99);
Но если я удалю эту первую строку кода и просто запущу ее ниже, входное значение будет «тест». Почему сейчас не удается установить значение, хотя в первом случае оно работало?
var $entry = $("div").find(".data-container");
$entry.find("#regionfield").val(99);
Теперь, если я сохраню HTML из первого кода в строку, опустошу элемент управления, а затем загрузлю его обратно, почему этот код не приведет к обновленному значению 99, а вместо этого будет иметь исходное значение «test»?
$("#regionfield").val(44);
var $entry = $("div").find(".data-container");
$entry.find("#regionfield").val(99);
var output = '';
output += $entry.html();
$entry.empty();
$entry.html(output);
Обновление. Я только что заметил, что получаю разные результаты при тестировании с помощью Bootply и Codeply. При использовании Bootply результат для примера кода № 1 — 99, а в Codepl результат — «тест». Это заставляет меня подозревать, что такое поведение связано с Bootstrap.
Эти вопросы возникли из примера одностраничного приложения, расположенного здесь. Может ли кто-нибудь объяснить, почему попытки установить значение элемента управления вводом с помощью jQuery работают/не работают при следующих условиях? Я включу постоянный HTML-код, а затем представлю серию строк Javascript, поведение которых я не могу объяснить. Сначала HTML. [code]
Region
[/code] [list] [*]Если я запускаю этот код, он работает так, как ожидалось, и поле ввода имеет значение 99. Обратите внимание, что я устанавливаю значение в двух разных местах из-за проблемы, обнаруженной в следующем примере. [code]$("#regionfield").val(44); var $entry = $("div").find(".data-container"); $entry.find("#regionfield").val(99); [/code]
[*]Но если я удалю эту первую строку кода и просто запущу ее ниже, входное значение будет «тест». Почему сейчас не удается установить значение, хотя в первом случае оно работало? [code]var $entry = $("div").find(".data-container"); $entry.find("#regionfield").val(99); [/code]
[*]Теперь, если я сохраню HTML из первого кода в строку, опустошу элемент управления, а затем загрузлю его обратно, почему этот код не приведет к обновленному значению 99, а вместо этого будет иметь исходное значение «test»? [code]$("#regionfield").val(44); var $entry = $("div").find(".data-container"); $entry.find("#regionfield").val(99); var output = ''; output += $entry.html(); $entry.empty(); $entry.html(output); [/code]
[/list] [b]Обновление[/b]. Я только что заметил, что получаю разные результаты при тестировании с помощью Bootply и Codeply. При использовании Bootply результат для примера кода № 1 — 99, а в Codepl результат — «тест». Это заставляет меня подозревать, что такое поведение связано с Bootstrap.