2011-12-15 3 views
-1

총액도, 사용자가 취소를 누르면 다음 자바 스크립트 메시지 확인은 사용자가 제로 양의 절약 계속할지 여부를 사용자에게 요청하고 0이면 나는 필드는 "총액"자바 스크립트 쿼리

라는 이름의 한 서버 측 저장 버튼이 활성화되어서는 안되며, 총액 패널로 돌아와야합니다.

클라이언트 측에 다음 코드를 사용했습니다.

function show_confirm() { 

    // var txttemp = document.getElementById("<%=txtSAmt.ClientID %>").value; 
    var menu = $find("<%= this.txtSAmt.ClientID %>"); 
    var check; 
    if (menu != null) { 
     check = menu.get_value(); 
    } 
    if (check == '0') { 
     var r = window.confirm("Gross Settlement Amount is 0.Press Cancel to Change, Press OK to save anyway"); 
     if (r == 'false') { 

     } 

    } 

} 

나 클라이언트가 취소를 클릭하면, 그것은 서버 측에 btnSave를 해고해서는 안 알려 주시기 바랍니다.

+5

질문을 명확히하십시오. – Mathletics

+0

나는 내 서버 사이드 버튼 이벤트가 발사되는 것을 막을 수있는 r == false에 무엇을 포함시켜야하는지 알고 싶습니다. – Bebu

+1

이 asp.net입니까? MVC asp.net? 서블릿? – Ivan

답변

1

이 이벤트는 btnSave의 onclick 이벤트에 대한 이벤트 처리기라고 가정합니다.

첫째, r 것이다 결코confirm()는 부울이 아닌 문자열을 반환 동일한 "false" 때문이다. rfalse (따옴표 제외)과 비교해야합니다. 사실, r과 비교할 필요가 없습니다. r은 이미 부울 값입니다. 따라서 r == false!r과 같습니다.

e.preventDefault()을 사용할 수 있습니다. 이 같은

function show_confirm (e) { 
    e = e || window.event; 
    ... 
    if (check == '0') { 
     var r = window.confirm("..."); 
     if (!r) { 
      if (e.preventDefault) { 
       e.preventDefault(); 
      } 
      e.returnValue = false; 
     } 
    } 
} 

당신이 호출하는 경우 show_confirm() :

<asp:button ... OnClientClick="show_confirm()" /> 

당신은 event 개체를 전달할 것을 변경해야합니다 :

당신은 당신의 함수 정의에 e 매개 변수를 추가해야합니다
<asp:button ... OnClientClick="show_confirm(event)" /> 

또는 이벤트 처리기에서 false을 반환 할 수 있습니다.당신이 당신의 기능을 변경할 수 있습니다

<asp:button ... OnClientClick="return show_confirm()" /> 

: 위와 같이 show_confirm()를 호출하는 경우 다시 말하지만, 당신은 그것을 변경해야합니다

function show_confirm() { 
    var menu = $find("<%= this.txtSAmt.ClientID %>"); 
    var check; 
    if (menu != null) { 
     check = menu.get_value(); 
    } 
    return check != "0" || !confirm("Gross Settlement Amount is 0. Press Cancel to Change, Press OK to save anyway."); 
}   
0

show_confirm() 양식에 대한 submit 이벤트를 실행하는 경우 :

변경 :

또한
var r = window.confirm("Gross Settlement Amount is 0.Press Cancel to Change, Press OK to save anyway"); 
    return r;//if they confirm this will return true and if they cancel then this will return false and the form won't submit 

이 ID를 기준으로 요소를 선택하면 find() 기능이 필요하지 않습니다

var menu = $find("<%= this.txtSAmt.ClientID %>"); 

사람 :

,210

그리고 당신은 jQuery를에 .val() 기능으로 menu 요소의 값을 얻을 수 있습니다 : 그들은 클릭하면 위치를 앞으로 이동하기 전에이를 확인해야하는 클라이언트를 가정

var menu = $("<%= this.txtSAmt.ClientID %>"), 
    check = menu.val(); 
+0

자바 스크립트 코드는 페이지의 내용을 변경하지 않고 메시지 상자를 닫습니다. ????? – Bebu

0

, 그냥 if 문에 응답을 포장 취소하면 false를 반환합니다. 즉, 확인을 클릭하면 true를 반환하고 게시물을 계속 실행하여 서버 측 작업을 트리거하는 경우 응답과 함께 앞으로 이동하지 않습니다.

0

if (!r) { return false; } 당신이 제공 한 정보가 거의 없습니다.

관련 문제