2012-03-29 6 views
0

처리를 허용하기 위해 게시물에 플래그를 설정하려고합니다. javascript가 작동하지 않습니다. 대화 상자가 튀어 나오고 취소 된 bool 0을 설정하고 ok를 1로 설정하려고합니다. 확인 된 수익에 따라 게시 값을 설정하는 더 좋은 방법이 있습니까? 내가 검색하는 모든 것은 ASP.NET을 가져오고 postBack 값입니다. 내가 확인 반환을 확인하고 게시하기 전에 값을 설정하려고했던 방법자바 스크립트로 값을 게시 반환 확인 하시겠습니까?

<form name="delPlayers" method="post" action="deletePlayer.jsp" class="col6 leftpad3 rightpad3"> 
    <input type="hidden" name="confirmed" value="0" /> 
    <select name="playerName"> 
    <% while (results.next()) 
     { 
     out.print("<option value=\""); 
     out.print(results.getString("username")); 
     out.print("\">"); 
     out.print(results.getString("username")); 
     out.print("</option>"); 
     } %> 
    </select> 
    <input type="submit" name="Submit" class="button" value="Submit" onSubmit="return confirmSubmit()" /> 
</form> 

:

양식은 (나는 그것이 오래 알고이 내 요구를 제품군보다 JSTL은) 간단한 JSP를 사용하여 생성된다.

<script type="text/javascript"> 
<!-- 
    function confirmSubmit() 
    { 
     var r = confirm("Remove " + document.forms['delPlayers']["playerName"].value + "?"); 
     if (r) 
     document.forms['delPlayers']["confirmed"].value = r; 
     return true ; 
     else 
     return false ; 
    } 
--> 
</script> 
+1

제출 이벤트를 취소하려는 경우 확인되었는지 여부에 관계없이 서버로 다시 전달해야하는 이유는 무엇입니까? – mellamokb

+0

흠 좋은 지적. 그래서 confirmsubmit을 form 태그에 넣으면 확인이 취소되면 취소 할 것입니까? – LF4

답변

3

이 부분 :

onSubmit="return confirmSubmit()" 

<form> 태그가 아닌 <input submit> 태그 안에 나타납니다. 이처럼 :

<form onSubmit="return confirmSubmit()" name="delPlayers" method="post" action="deletePlayer.jsp" class="col6 leftpad3 rightpad3"> 

[편집]

당신은 필요에 따라 당신의 자바 스크립트 구조에 원인이 작업하는 좋지 않다하지 않았다. 나는 이런 일에 코드를 변경했는데, 일이 더 나은 것 같다 :

if (r){ 
    document.forms['delPlayers']["confirmed"].value = r; 
    return true ; 
}else{ 
    return false ; 
} 

그냥 당신이 자바 스크립트 내부 경우 명령을 쓸 때 항상 중괄호 {및}을 사용해야합니다. 당신은 그것들을 사용할 의무가 없지만 이런 무의미한 문제를 피하는 것은 신의 습관입니다.

는 기술적 참고 : JS에서 곱슬 brakets없이 if(condition)는 {} 바로 이후의 명령단지 1 개 라인과 작동한다. 귀하의 경우에는 2 명령이 있었으므로 "else"상태는 불법입니다. 그것이 항상 중괄호를 사용하여 if를 사용해야하는 이유입니다.

if (condition) 
     foo() 
else 
     bar() 

은 OK입니다. 그러나

if (condition) 
     foo() 
     any_extra_command(); 
else 
     bar() 

은 오류를 유발합니다. 따라서 모든 경우에 가장 적합한 것은 다음과 같습니다.

if (condition){ 
     foo(); 
     any_extra_command(); 
     ...... 
     anything_you_want_else(); 
}else{ 
     bar() 
} 
+0

그래, 나는 그것을 형식에 넣었지만 확인 메시지가 나타나지 않았다. 나는 그것을 되 돌리는 데 다른 것을 시도하고 있었다. '확인'대신 확인 대화 상자가 취소 된 경우 게시물을 취소하려면 어떻게해야합니까? – LF4

관련 문제