2009-04-06 6 views
0

검색 컨트롤을 가지고 놀았으며 텍스트 상자 내에서 입력을 시도하면 양식을 전송하지만 검색 버튼을 클릭하지 않은 것으로 나타났습니다. 그것을 원한다). JQuery를 사용하여 asp : linkbutton 클릭 함수를 호출합니다.

<div> 
    <span>Search</span> 
    <asp:TextBox ID="txtSearch" runat="server" Width="170" 
     onkeydown="if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {$('#<%=lkbSearch.ClientID %>').click();return false;} else return true; "> 
    </asp:TextBox> 
</div> 
<asp:LinkButton ID="lkbSearch" runat="server" CssClass="searchButton"> 
    <asp:Image ID="imgSearch" runat="server" ImageUrl="~/Images/Master/button_go.gif" /> 
</asp:LinkButton> 

내가 텍스트 상자에 onKeyDown에 이벤트를 추가하고, 그것을 실행,하지만 난 버튼에서 클릭() 함수를 호출하는 JQuery와 사용하려고하면 그것은 아무것도하지 않는다 :

내 마크 업이다.

버튼을 "클릭"하는 입력란에서 입력을 누르면 어떻게 될까요?

답변

0

:-) ClientScript.GetPostBackEventReference

행운을 사용할 수있는 실패 드디어 해결책을했다.

asp : 패널 컨트롤에서 텍스트 상자와 단추를 줄 바꿈하고 기본 단추를 LinkButton의 ID로 설정하여 해당 패널이 LinkButton을 DefaultButton으로 가질 수 없다는 것을 알아 냈습니다.

하지만 LinkButton을 ImageButton으로 변경하고 패널의 DefaultButton 필드에서 해당 ID를 사용하면 완벽하게 작동합니다. LinkButton 이후

<asp:Panel ID="pnlSearch" runat="server" DefaultButton="imbSearch"> 
... 
</asp:Panel> 
+0

내기는 파이어 폭스에서 작동하지 않습니다! – Shawn

+0

Firefox는 내가 사용하는 기본 브라우저로 잘 작동합니다 ... – dkarzon

+0

파이어 폭스에서는 나에게 적합하지 않지만 ie와 chrome에서는 작동한다. 어떠한 제안 –

1

이것은 당신이 defaultButton의 속성이있다 패널이있는 경우, 사업부에있어 참조 jQuery를

Page.RegisterHiddenField("__EVENTTARGET", lkbSearch.ClientID); 

을 포함하지 않습니다.

당신이 정말로 jQuery를 사용하려는 경우, 당신은 몇 가지 다른 것들로 주위를 연주 후

+0

하지만 그 말은 내가 사용하는 모든 페이지에서 해당 텍스트 상자에만 설정할 수 있다는 뜻입니까? 언급을 잊어 버렸습니다. 이것은 내 마스터 페이지에서 사용되는 서버 컨트롤 안에 있습니다. (사이트의 모든 페이지에 있습니다.) – dkarzon

+0

예, 코드는 기본 동작으로 설정합니다. 난 패널 및 defaultbutton 여전히 간단하고 괜찮을 것이라고 생각하거나 GetPostBackEventReference를 사용할 수 있으며, 키 코드가 Enter 키일 때 그것을 호출합니다. –

1

<a> 같이 페이지에 추가된다. jQuery를 사용하여 버튼을 선택하면 jQuery로 래핑 된 요소가 생성됩니다. 이 호출 때문에 click 이벤트는 href을 따르지 않고 click 이벤트 만 트리거합니다.

다음 코드는 버튼을 클릭 시뮬레이션 할 것입니다 : 당신은 올바른 요소를 얻을 것이다 어떤 선택에 '#<%= linkbuttonid.ClientID%>'을 대체 할 수

$('#<%= linkbuttonid.ClientID%>')[0].click(); 

. 그러나 <a>에서 클릭이 호출되도록 [0]을 포함시켜야합니다.

다른 방법으로, 당신은 HREF에 페이지를 다시 라우팅 할 수 :

window.location = $('yourselector').attr('href'); 

자바 스크립트에서 앵커 태그에 클릭 이벤트를 호출에 대한 자세한 내용은 this question를 참조하십시오.

관련 문제