2010-05-06 5 views
1

HTML select onchange 이벤트를 사용하여 다른 javascript 함수 func1을 발생시킵니다.html select javadript onload를 실행하십시오.

이 html select는 양식 요소에 기록되며 사용자가 단추를 클릭 할 때 동적으로 생성됩니다.

동적으로 생성 된 양식이 처음 표시 될 때 어떻게 javascript func1을 실행할 수 있습니까? 양식에 대한 on_first_show 이벤트의 행을 따라 뭔가를 생각하고 있습니까?

다음은 스 니펫입니다. I 중 하나가 작동하는 경보 ('돈') (단지 DIV 후 하나)를 얻을 couldnt는

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가 강제로 적용됩니다. 또는 Submit 버튼을 추가하기 만하면됩니다.

답변

1

리터럴 srings 대신 document.createElement 메서드를 사용하고 addEventListener을 호출하여 onchange 이벤트 처리기를 추가 할 수 있습니다.

당신은 작은 따옴표 전에 select 태그를 닫는

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

은 다음과 같아야합니다

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

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

당신을 : jQuery와 같은

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

라이브러리가이 작업을 수행 할 것 그러나 대부분의 브라우저에서이를 위해 라이브러리가 필요하지는 않습니다. change 이벤트가 포함 요소까지 버블 될 것이므로 거기에서들을 수 있습니다. 나는 그것이 IE that won't bubble up a change event라고 생각한다.

관련 문제