html选择执行javascript onload

时间:2010-05-06 02:38:52

标签: javascript html select onchange

我正在使用HTML select onchange事件来触发另一个javascript函数func1。

此html选择被写入表单元素,当用户单击按钮时动态生成该表单元素。

问题是如何在首次显示动态生成的表单时触发javascript func1? 我正在考虑形式的on_first_show事件的某些内容?

这是片段。我无法使警报('don')工作(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选择中添加另一个选项,告诉用户选择,这样就迫使onchange生效。或者我可以添加一个提交按钮。

2 个答案:

答案 0 :(得分:1)

您可以使用document.createElement方法而不是使用文字srings,并通过调用addEventListener添加onchange事件处理程序。

您正在关闭单引号

之前的select标记
sPopupContents += "<select name='theselect' onchange='alert(2);";
sPopupContents += "func1()>'";

应该是:

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

答案 1 :(得分:0)

像jQuery这样的库可以让你这样做:

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

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

但是,对于大多数浏览器,您不需要使用库。 change事件会冒泡到包含元素,因此您可以在那里监听它。我相信它是IE that won't bubble up a change event