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