2009-08-20 6 views
2

자바 스크립트를 사용하여 asp.net 버튼을 제출하고 싶습니다. 어떻게해야합니까?javascript를 사용하여 asp.net에서 버튼을 수동으로 제출하는 방법은 무엇입니까?

나는 onclick가 다음과 같은 것을 알고 있습니다. javascript : WebForm_DoPostBackWithOptions (new .....);

컨트롤의 ID가 변경 될 수 있기 때문에 지치고 있습니다. 당신이 당신의 .ASPX 마크 업에서 자바 스크립트 권리를 넣을 수 있습니다 경우

답변

4
var button = document.getElementById('btnID'); 
if (button) 
{ 
    button.click(); 
} 

, 당신은이 작업을 수행하여 변경 ID의뿐만 아니라 주위에 얻을 수 있습니다 :

당신의 .ASPX이 처리
var button = document.getElementById('<%= myServerButton.ClientID %>'); 
if (button) 
{ 
    button.click(); 
} 

, ID를 페이지에 나타나는 버튼의 모양이 자바 스크립트 기능으로 대체됩니다.

+0

나는, 그러나 어떤 이유가 포스트 백을 수행되지 않도록 노력을 게시하려면. 아주 이상한! – mrblah

+0

나는 $ (..). attr ("href")을 수행해도 단추의 href 태그에있는 doPost ...를 출력합니다. – mrblah

9

이 유사한 컨트롤이있는 경우 :

<asp:Button ID="Foo" ... /> 

할 수 있습니다 화재와 같은 단순한 뭔가 JS의 '클릭'이벤트 업데이트 된 클라이언트 ID에 액세스하는 동안 (여기 jQuery를 구문) :

$('#<%=Foo.ClientID%>').click() 

아니면 다음과 같이 실행할 수있는 적절한 JS를 얻을 수는 :

<script type="text/javascript"> 
    function clickFoo() { 
    <%=Page.ClientScript. GetPostBackEventReference(Foo)%>; 
    } 
</script> 
+0

+1 두 번째 것이 가장 좋은 soluton이라고 생각합니다. – Cleiton

+0

세 번째 버전은 이벤트를 발생시킬 때 사용하는 스크립트와 똑같은 스크립트를 생성하도록 프레임 워크에 요청하기 때문에 아마도 우리가 사용해야하는 버전입니다. 해당 스크립트에 변경 사항이있을지라도 스크립트에 반영됩니다. 감사! – justabuzz

2

당신이 __doPostBack 재미를 사용할 수 있습니다 쉽게 그 클릭 (명령 등) 이벤트를 발생시키려는 controll ID를 전달하는 ction.

하는 ID 문제를 방지하려면 같은 것을 할 :

__doPostBack("<%= yourConrol.UniqueID%>"); 

편집 : 또한 포스트 백을 시작하는 클라이언트 측 스크립트를 방출하고 기존의 닷넷 프레임 워크 방법 Page.GetPostBackEventReference가에 대한 참조를이 제공됩니다 다시 게시 이벤트를 시작한 컨트롤

2

jquery를 사용하면 aspx 페이지에 다음과 같은 내용을 넣을 수 있습니다.

$('#<%= myctrl.ClientID %>').click(); 

myctrl는 버튼입니다. ClientID 속성은 html 버튼의 ID를 제공합니다. Jquery는 click 기능을 제공합니다.

+0

id 선택기에 '#'을 잊지 마십시오. – orip

0

하나를 클릭하거나 단추를 클릭하거나 양식을 제출할 수 있습니다.

그래서, 당신은,

var button = document.getElementById('<%= btnButtonID.ClientID %>'); 
if (button) { button.click(); } 

을 버튼을 클릭하거나 폼

document.forms[0].submit(); 
관련 문제