2012-10-22 6 views
-1

암호가 일치하지 않지만 내 데이터베이스가 여전히 새 목록을 추가한다는 오류 메시지가 나타납니다! 스크립트로 제출 양식을 중단 시키려면 어떻게해야합니까? 코딩에 대한 나의 이해는 매우 약하다!Jquery 명령이 양식 제출 프로세스를 중지하지 않는 이유는 무엇입니까?

<script src="scripts/jquery.js" type="text/javascript"> 
jQuery(function(){ 
    $("#submit").click(function(){ 
    $(".error").hide(); 
    var hasError = false; 
    var passwordVal = $("#password").val(); 
    var checkVal = $("#repeatpassword").val(); 
    if (passwordVal == '') { 
     $("#password").after('<span class="error">Please enter a password.</span>'); 
     hasError = true; 
    } else if (checkVal == '') { 
     $("#repeatpassword").after('<span class="error">Please re-enter your password.</span>'); 
     hasError = true; 
    } else if (passwordVal != checkVal) { 
     $("#repeatpassword").after('<span class="error">Passwords do not match.</span>'); 
     hasError = true; 
    } 
    if(hasError == true) {return false;} 
    }); 
}); 
</script> 
<form method="post" name="form1" action="<?php echo $editFormAction; ?>"> 
    <table align="center"> 
    <tr valign="baseline"> 
     <td nowrap align="right">First name:</td> 
     <td><input type="text" name="firstname" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">Last name:</td> 
     <td><input type="text" name="lastname" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">Email:*</td> 
     <td><input type="text" name="email" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">Password:*</td> 
     <td><input type="password" name="password" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">Repeat Password:*</td> 
     <td><input type="password" name="repeatpassword" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right" valign="top">Channel url:*</td> 
     <td><textarea name="channelurl" cols="50" rows="1"></textarea></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">Channel name:*</td> 
     <td><input type="text" name="chanelname" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">Description:</td> 
     <td><textarea name="description" cols="32" rows="6"></textarea></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">Video 1:* </td> 
     <td><input type="text" name="embedd1" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">What game is it?</td> 
     <td><input type="text" name="game1" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">Video 2:</td> 
     <td><input type="text" name="Embedd2" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">What game is it?</td> 
     <td><input type="text" name="game2" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">Keywords to describe and find your channel*</td> 
     <td><input type="text" name="keywords" value="" size="32"></td> 
    </tr> 
    <tr valign="baseline"> 
     <td nowrap align="right">&nbsp;</td> 
     <td><input type="submit" value="Channel Create"></td> 
    </tr> 
    </table> 
    <input type="hidden" name="chanelID" value=""> 
    <input type="hidden" name="MM_insert" value="form1"> 
</form> 
+1

http://sscce.org/ – j08691

답변

3

양식 제출 이벤트에 바인딩을 제안한 다음 기본 동작을 완전히 시작하지 못하도록하고 제출을 원할 때 제출하십시오.

$("#formid").submit(function(event){ 
    event.preventDefault(); 

    // validate form 
    var valid = true; 

    if (valid) { 
     this.submit(); 
    } 
}); 

이것은 (논리 문제가 valid의 값을 포함하지 않는 ) 실수로 오류 또는 논리 문제로 인해 제출에서 양식을 방지 할 수 있습니다.

+0

입력하지만 오류 경고를 받고 있어요 : 헤더 정보를 수정할 수 없습니다 - 헤더가 이미 전송되었습니다. (출력은 /home/theace/public_html/letsplays.uni.me/addchannel.php:1에서 시작되었습니다.) –

+0

jQuery 오류처럼 들리지는 않습니다. –

0

click() 이벤트 대신 양식 submit() 이벤트에 바인딩을 시도하십시오.

그래서, 대신

$("#submit").click(function(){ 

의 세 번째 줄, 사용에

$("form").submit(function(){ 
관련 문제