1

我正在使用 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 生效。或者我可以添加一个提交按钮。

4

2 回答 2

1

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

您在单引号之前关闭选择标签

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

应该:

sPopupContents += "<select name='theselect' onchange='alert(2);";
sPopupContents += "func1()'>";
于 2010-05-06T03:01:13.890 回答
0

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

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

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

但是,对于大多数浏览器,您不需要为此提供库。一个change事件将冒泡到包含元素,因此您可以在那里收听它。我相信是IE 不会冒出 change event

于 2010-05-06T03:52:48.947 回答