1

HTML select onchange イベントを使用して、別の JavaScript 関数 func1 を起動しています。

この html 選択はフォーム要素に書き込まれ、ユーザーがボタンをクリックすると動的に生成されます。

問題は、動的に生成されたフォームが最初に表示されたときに、javascript func1 を起動するにはどうすればよいですか? form の 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 を強制的に有効にすることができると思います。または、送信ボタンを追加することもできます。

4

2 に答える 2

1

リテラル文字列を使用する代わりにdocument.createElementメソッドを使用し、 addEventListenerを呼び出して onchange イベント ハンドラを追加できます。

一重引用符の前でselectタグを閉じています

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ので、そこでリッスンできます。change イベントを発生させないのは IE だと思います。

于 2010-05-06T03:52:48.947 に答える