2014-04-13 5 views
0

이 양식의 오류 메시지 ('after')는 기본적으로 숨겨져 있어야하며 사용자가 '등록'제출 버튼을 누를 때만 표시되어야합니다. 그러나 모든 오류 메시지가 기본적으로 표시되고 있습니다. 왜 이것이 작동하지 않는지 제안 할 수 있습니까? javascript 파일이 콘솔에 인쇄되어 파일을 찾을 수 있습니다. 이것은 자바 스크립트가javascript 숨기기 양식

<div class="span5 pull-right reg-form hidden"> 
    <?php 
    echo $this->Form->create('Users.Register', array(
     'url' => '/register', 
     'class' => 'span12 pull-right')); 

    echo $this->Form->hidden('current_url', array('value' => $this->here)); 
    echo $this->Form->input('username', array(
     'class' => 'reg-input', 
     'label' => array('text' => 'Email:', 'class' => 'reg-label main-color'), 
     'div' => array('class' => 'span12 reg-div'), 
     'required' => FALSE, 
     'after' => '<span class="hidden show-email-err show-err">This email address is already taken</span> 
      <span class="hidden show-emailvalid-err show-err">This email is not valid</span>' 
    )); 
    echo $this->Form->input('confirm_username', array(
     'class' => 'reg-input', 
     'label' => array('text' => 'Confirm Email:', 'class' => 'reg-label main-color'), 
     'div' => array('class' => 'span12 reg-div'), 
     'required' => FALSE, 
     'after' => '<span class="hidden show-user-err show-err">Re-email is incorrect</span>' 
    )); 
    echo $this->Form->input('password', array(
     'class' => 'reg-input', 
     'label' => array('text' => 'Password:', 'class' => 'reg-label main-color'), 
     'div' => array('class' => 'span12 reg-div'), 
     'required' => FALSE, 
     'after' => '<span class="hidden show-pass-long show-err">Password must be at least 6 characters</span>' 
    )); 
    echo $this->Form->input('confirm_password', array(
     'class' => 'reg-input', 
     'type' => 'password', 
     'label' => array('text' => 'Confirm Password:', 'class' => 'reg-label main-color'), 
     'div' => array('class' => 'span12 reg-div'), 
     'required' => FALSE, 
     'after' => '<span class="hidden show-pass-err show-err">Re-password is incorrect</span>' 
    )); 
    echo $this->Form->input('firstname', array(
     'class' => 'reg-input', 
     'label' => array('text' => 'Name:', 'class' => 'reg-label main-color'), 
     'div' => array('class' => 'span12 reg-div'), 
     'required' => FALSE, 
     'after' => '<span class="hidden show-firstname-err show-err">This field must not empty</span>' 
    )); 
    echo $this->Form->input('lastname', array(
     'class' => 'reg-input', 
     'label' => array('text' => 'Last Name:', 'class' => 'reg-label main-color'), 
     'div' => array('class' => 'span12 reg-div'), 
     'required' => FALSE, 
     'after' => '<span class="hidden show-lastname-err show-err">This field must not empty</span>' 
    )); 
    ?> 
    <?php echo $this->Form->end(array('label' => 'Register', 'div' => false, 'id' => 'RegSubmit', 'class' => 'btn-sign pull-right')); ?> 
</div> 

:

매우

양식을 표시하는 PHP, 감사합니다, 감사하겠습니다 도움 - 필자의 형식은 아래의 자바 스크립트의 PHP를 넣어
(function($){ 
    /** $(document).ready(function(){}) */ 
    $(function(){ 
     console.log('cover'); 
    /*  
     $('#btn-reg').on('click', function(){ 
      $('#RegisterUsername').val($('#LoginUsername').val()); 
      $('.reg-form').removeClass('hidden'); 
     }); 
     */ 
     $('#RegSubmit').on('click', function(e) { 
      //console.log(e); 
      if($('.show-user-err').attr('class').indexOf('hidden') < 0) 
       $('.show-user-err').addClass('hidden'); 
      var username = $('#RegisterUsername').val(), 
       re_username = $('#RegisterConfirmUsername').val(), 
       password = $('#RegisterPassword').val(), 
       re_password = $('#RegisterConfirmPassword').val(), 
       firstname = $('#RegisterFirstname').val(), 
       lastname = $('#RegisterLastname').val(); 

       var check = 0; 
       var email_regex = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/; 
      $.each(user_emails, function(index, value){ 
       if(value==username){ 
        check = 1; 
       } 
      }); 
      if(check == 1){ 
       $('.show-err').addClass('hidden'); 
       $('.show-email-err').removeClass('hidden'); 
       return false; 
      } 
      if(!email_regex.test(username) || username == '') { 
       $('.show-err').addClass('hidden'); 
       $('.show-emailvalid-err').removeClass('hidden'); 
       return false; 
      } 
      if(username != re_username){ 
       $('.show-err').addClass('hidden'); 
       $('.show-user-err').removeClass('hidden'); 
       return false; 
      } 
      if(password.length < 6){ 
       $('.show-err').addClass('hidden'); 
       $('.show-pass-long').removeClass('hidden'); 
       return false; 
      } 
      if(password != re_password){ 
       $('.show-err').addClass('hidden'); 
       $('.show-pass-err').removeClass('hidden'); 
       return false; 
      } 
      if(firstname == ''){ 
       $('.show-err').addClass('hidden'); 
       $('.show-firstname-err').removeClass('hidden'); 
       return false; 
      } 
      if(lastname == ''){ 
       $('.show-err').addClass('hidden'); 
       $('.show-lastname-err').removeClass('hidden'); 
       return false; 
      } 

     }); 
    }); 

})(jQuery); 

답변

0

나는 show-err과 같은 다른 클래스 중 하나에 display : block이 있으며 숨겨진 클래스를 재정의한다고 생각합니다. Chrome 또는 Firefox에서 요소를 검사하면 적용되는 CSS 규칙이 표시됩니다.

+0

감사합니다. - 숨김 "숨김"을위한 또 다른 CSS를 추가했습니다. javascript가 계속 좋았어요. – user3528443