2010-05-17 10 views
1

asp : RegularExpressionValidator가있는 asp : TextBox를 사용하여 숫자인지 확인합니다. 분명히 onchange 이벤트는 렌더링하는 동안이 텍스트 상자에 첨부됩니다. 또한 값을 변경하면 $ (document) .ready에 변경 이벤트를 추가하여 계산을합니다.jQuery에서 텍스트 상자의 변경 이벤트 트리거

<asp:TextBox id="myText" runat="server" /> 
<asp:regularexpressionvalidator id="myRev" ControlToValidate="myText" runat="server">*</asp:regularexpressionvalidator> 

$(document).ready(function(){ 
    $('[id$=myText]').bind('change',function(){ 
      //do something 
    }).change();  //force the change event at the very beginning 
}); 

내 기능은 등록 시간 때문에 .net 생성 된 js보다 늦게 실행됩니다. 그러나 asp.net js는 오류를 발생시킵니다. 내가 JS에 추적 :

function ValidatorOnChange(event) { 
     ... 
    } 

및 event.fromElement, event.toElement, event.srcElement를 모두가 예외가 발생하는 null 인 것으로 나타났다. 내가 뭐 잘못 했어요? 어떤 해결책? 감사.

편집

은 ASP.NET 4 VS2010에서 잘 작동하는 MS의 버그를 입증합니다.

+0

실행하려면 .net 처리기가 필요하거나 jQuery 하나만 필요합니까? –

+0

@Nick Craver : $ (XXX) .change()는 모든 변경 이벤트를 트리거합니다. 그러나 왜 생성 된 js가 오류를 발생 시키는가? 나는 그것이 올바르게 발사되어야한다고 생각한다. –

+0

대신에 $ ('[id $ = myText]')'$ ('# myText')를 사용하십시오. – Pointy

답변

4

을,이처럼 다시 쓸 수 있습니다 : 이벤트가 아니라 닷넷 핸들러에 의해 캡처 거품을 위로처럼 다른 이벤트가 부착되어 정확히 보지 않고

$(function(){ 
    $('#<%=myText.ClientID%>').change(function() { 
    //stuff 
    }).triggerHandler('change'); 
}); 

, .triggerHandler() 내 최고의 제안 할 것이다.

+0

작동하지 않습니다, 나는이 문제에서 triggerHandler()가 trigger()와 같다고 생각합니다. .net에 의해 생성 된 변경 이벤트는 두 이벤트 모두에서 발생합니다. triggerHandler()는 브라우저 이벤트를 트리거하지 않지만 .net js는 브라우저 이벤트가 아닙니다. –

+0

lol 12 자세히 가기 – Anurag

+0

@Danny - 요소에 직접 바인딩되어 있으므로 여기에서 변경 이벤트를 발생시키는 방법을 사용하는 것이 좋습니다. http://stackoverflow.com/questions/168596/programmatically-triggering-events -in-javascript-for-ie-using-jquery –

0

함수에서 계산을 포장하고 변화 유발의 준비 이벤트를 대신 호출 ID에 대한 뾰족한의 관점 (나 자신을 균열)를 포함

$(document).ready(function(){ 
    $('[id$=myText]').bind('change',function(){ 
      doCalc(); // or doCalc(this) or whatever you need 
    }); 
    doCalc(); 
}); 
+0

그 방법의 안쪽을 모른 채로 긴 샷을 할 수 있고, * 많이 * 짧게 할 수 있습니다 : $ ('[id $ = myText]') change (doCalc); ' –

+0

그래, 유효한 포인트, 보통 나는 더 짧은 스타일로, 더 눈에 잘 띄도록 요점에 초점을 맞 춥니 다. – andr

+0

이벤트가 왜 잘못 실행되는지 궁금합니다. 올바른 문법을 사용하고 있습니다. –

관련 문제