2012-10-11 5 views
2

내 코드가가 온 클릭

<?php echo CHtml::SubmitButton('Submit',array('onclick'=>'return validation();'));?> 

내 스크립트 기능

function validation(){ 

    jQuery("#firstname_result").hide(); 

    jQuery("#lastname_result").hide(); 

    jQuery("#email_result").hide(); 

var firstname =jQuery("#first_name").val(); 

    var lastname = jQuery("#last_name").val(); 

    var email = jQuery("#email").val(); 

success=true; 

if(firstname==''){ 

    success=false; 

    jQuery('#firstname_result').html('First Name cannot be blank.').show(); 


} 
if(lastname==''){ 
     success=false; 
    jQuery('#lastname_result').html('Last Name cannot be blank.').show(); 

} 
if(email==''){  
     success=false; 
    jQuery('#email_result').html('Email cannot be blank.').show(); 

} 

if(!success) 
     return; 

} 

제출 '버튼을 클릭 한 후 인

보기에 자바 스크립트 함수의 YII을 반환하지 않는 버튼을 제출, 쇼 오류가 발생하여 제출이 타겟팅 된 다른 페이지로 깜박입니다. 어느 누구도 내가 어떻게 할 수 있는지 보여줍니다. 이걸 극복 했어?

+0

'성공'값을 반환하지 않아야합니까? 그 순간에 당신은 아무것도 돌려 보내지 않는 것처럼 보입니다. – Stu

+0

대답이 아닙니다 ... 코드 앞에 네 자리를 기억하십시오. 바로 지금,보기 흉하게 보입니다. –

답변

1

성공 변수의 값을 돌려보십시오. 트릭을해야합니다.

if(!success) return; 

return success; 

이이 sumitting에서 양식을 중지해야합니다.

0

양식 제출을 방지하려면 preventDefault를 사용하십시오.

수정 된 코드 :

<?php echo CHtml::SubmitButton('Submit',array('onclick'=>'return validation(event);'));?> 

function validation(event){ 
    ..... //code 
    if(!success) { 
     event.preventDefault(); 
     event.returnValue = false; // for IE. 
    }