HTML выберите выполнить Javascript Onload - PullRequest
1 голос
/ 06 мая 2010

Я использую событие выбора HTML для запуска другой функции JavaScript func1.

Этот выбор HTML записывается в элемент формы, который динамически генерируется, когда пользователь нажимает кнопку.

Проблема в том, как я могу запустить javascript func1 при первом показе динамически сгенерированной формы? Я думаю о чем-то вроде события on_first_show для формы?

Вот фрагмент. Я не мог заставить работать оповещение («не») либо (тот, что сразу после div)

var sPopupContents = "<div ><script type='text/javascript'>alert('don');</script> </div>"; // this javascript is not executed ? I cant get the alert.
sPopupContents += "<form name='theform' >";
sPopupContents += "<select name='theselect' onchange='alert(2);";
sPopupContents += "func1()>'";
sPopupContents += "<option value='0' selected='selected'>Value1</option><option value='1'>Value2</option><br/>";
sPopupContents += "</form>";

- РЕДАКТИРОВАТЬ - Я полагаю, что я могу добавить другой вариант в html select, который говорит пользователям выбирать, чтобы заставить onchange вступить в силу. Или я могу просто добавить кнопку Отправить.

Ответы [ 2 ]

1 голос
/ 06 мая 2010

Вы можете использовать метод document.createElement вместо литеральных строк и добавить обработчик события onchange, вызвав addEventListener .

Вы закрываете тег выбора перед одинарной кавычкой

sPopupContents += "<select name='theselect' onchange='alert(2);";
sPopupContents += "func1()>'";

должно быть:

sPopupContents += "<select name='theselect' onchange='alert(2);";
sPopupContents += "func1()'>";
0 голосов
/ 06 мая 2010

Библиотека, такая как jQuery, позволит вам сделать это:

(function() {
  function selectChange() {
    // save baby seals here
  };

  $('select[name=theselect]').live('change', selectChange)
  $(document).ready(selectChange);
}();

Однако для большинства браузеров вам не нужна библиотека для этого. Событие change будет пузыриться до содержащего элемента, поэтому вы можете прослушать его там. Я полагаю, что IE не вызовет событие изменения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...