【问题标题】:html select execute javascript onloadhtml 选择执行 javascript onload
【发布时间】:2011-02-16 05:04:47
【问题描述】:

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

这个html选择被写入一个表单元素,当用户点击一个按钮时动态生成。

问题是如何在首次显示动态生成的表单时触发 javascript func1 ? 我正在考虑关于表单的 on_first_show 事件?

这里是sn-p。我也无法让 alert('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 生效。或者我可以添加一个提交按钮。

【问题讨论】:

    标签: javascript html select onchange


    【解决方案1】:

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

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

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

    应该是:

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

    【讨论】:

      【解决方案2】:

      像 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-28
        • 2015-10-24
        • 2012-02-08
        相关资源
        最近更新 更多