2009-10-01 2 views
0

웹 페이지에 값을 저장하기위한 몇 개의 텍스트 상자와 버튼이 있습니다. 텍스트 상자의 onchange 이벤트는 js 배열에 변경된 텍스트를 추가하는 일부 j를 시작합니다. 확인 버튼을 클릭하면 웹 서비스를 통해 데이터베이스로 플러시됩니다. ok 버튼을 클릭하여 onchange 이벤트가 발생할 경우을 제외한 을 올바르게 작동합니다. 이 시나리오에서는 여전히 텍스트 상자의 onchange가 발생하지만 단추의 onClick 이벤트는 발생하지 않습니다. 어떤 아이디어?버튼 OnClick 이벤트가 발생하여 텍스트 상자 onChange 이벤트가 먼저 발생하지 않습니다.

텍스트 상자는 버튼을

<input type="button" name="ctrlJPView$btnOk" value="OK" onclick="saveAmendments();refreshJobGrids();return false;__doPostBack('ctrlJPView$btnOk','')" id="ctrlJPView_btnOk" class="ControlText" style="width:60px;" /> 

UPDATE를 저장 내

<input name="ctrlJPView$tbcTabContainer$Details$JP_Details_Address2Text" type="text" value="test" 
id="ctrlJPView_tbcTabContainer_Details_JP_Details_Address2Text" onchange="addSaveDetails('Jobs###' + document.getElementById('ctrlJPView_tbcTabContainer_Details_JP_Details_Address2Text').value + ');" style="font-size:8pt;Left:110px;Top:29px;Width:420px;Height:13px;Position:absolute;" /> 

처럼 보일 :이 두 가지 중 하나에 내려 오는 것 같아요. 1) 부주의 한 반환 false와 같은 호출을 보류하기 위해 버튼의 onClick이 호출되기 전에 어떤 일이 발생합니다. 또는 2) onClick 이벤트가 전혀 실행되지 않습니다. 이제는 미리 호출 된 함수 안에있는 모든 것을 rem'd했지만 문제는 계속됩니다. 하지만 내가 전화를 완전히 제거하면 (???)

답변

0

은 실행에 실패한 __doPostBack 기능입니까? 이 경우 return false이 명백한 문제입니다. 다시 돌아 오면 코드가 더 이상 실행되지 않습니다.

더 중요한 것은 HTML에서 onBlah 핸들러 사용을 중단하고 대신 이벤트 관찰자를 제공하는 최신 javascript 라이브러리를 사용해야합니다. 나는 jquery을 추천하지만 extjs 또는 prototype도 일을하고 천 가지의 다른 방법으로 삶을 훨씬 쉽게 만들어줍니다.

+0

내 .net 코드에서 입력의 useSubmitBehavior를 false로 설정 했으므로 __doPostBack이 추가되었습니다. 저장을 살펴 보는 함수는 saveAmendments 함수이며 반환하기 전에 실행해야합니다. 당신은 텍스트 박스 onchange 이벤트에서 뭔가 실패 할 수 있다고 생각할 것입니다.하지만 디버깅에서 그렇게 보이지는 않습니다. 필자는 본질적으로 기능을 수행하기 위해 다시 축소했습니다. – user48408

관련 문제