2010-08-12 5 views
0

나는Ajax 양식의 유효성을 검증하는 방법 Submit (remote_form_tag)?

- form_remote_tag :url=>mails_path,:condition=>"validate_mail()", :html => {:id=>"mailform",:method => :post, :class => 'ajax',:style=>"padding:15px;" } do |form| 
    .gimmespace 
     Naam 
     %br 
     = text_field_tag :name,params[:name],:class=>"title required" 
    .gimmespace 
     Telefoonnummber 
     %br 
     = text_field_tag :phone,params[:phone],:size=>25,:class=>"title" 
    .gimmespace 
     Mailadres 
     %br 
     = text_field_tag :email,params[:email],:size=>30,:class=>"title required" 
    .gimmespace 
     Onderwerp 
     %br 
     = text_field_tag :subject,params[:subject],:class=>"title required" 
    .gimmespace 
     Boodschap 
     %br 
     = text_area_tag :message,params[:message],:rows=>10,:cols=>45,:class=>"title required" 
    .gimmespace 
     = submit_tag "Verstuur",:id=>"mailsubmit",:class=>"sendBtn" 
     %button{:onclick=>"$.fn.colorbox.close();"} Annuleer 

위의 코드와 같은 아약스 메일 양식을 HAML에 있습니다. ajax 양식을 컨트롤러에 제출합니다. 제출하기 전에 입력란의 유효성을 검사해야합니다. 그래서, 나는 여러 가지 것을 시도했다. 나는이 기사 http://hillemania.wordpress.com/2006/09/18/rails-ajax-pre-submit-form-validation/을 읽고 검증하기 위해 자바 스크립트 함수를 호출하기 전에 콜백을했다. 다음은 자바 스크립트 유효성 검사 기능입니다. 위의 함수 당으로

function validate_mail() { 
     alert("Your Name, Email, Subject and Body Content are Required !"); 
     return false; 

} 

은, 그것이 잘 ajaxically 제출, 어떤 방법과 양식이 제출되지해야 false를 반환하지만. 다른 방법이 있습니까, 제발 도와주세요.

답변

0

:before 옵션 대신 :condition 옵션을 사용하고 싶습니다. 이런 식으로 뭔가 : 당신의 condition 함수가 false를 반환하는 경우

- form_remote_tag :url=> mails_path, :condition => "validate_mail()", ... 

그런 다음 양식을 제출하지 않아야합니다. 물론

, 당신은 실제로 각 양식 필드가 비어 있지 않은 것을 테스트하려면 validate_mail() 기능을 수정해야합니다 :

if ($('name').value == '' || $('phone').value == '' || ...) { 
    alert('Something was blank...'); 
    return false; 
} else { 
    return true; 
} 

내 프로토 타입 구문은 녹슨입니다 -하지만 바른 길에 당신을 얻을 것을.

+0

레일 2.3.8 문서에서는 ": 조건이 조건에 따라 조건부로 원격 요청을 수행합니다. 요청을 시작해서는 안되는 경우 브라우저 측 조건을 설명 할 때 사용하십시오." .. 내가 그랬지 만 여전히 양식이 제출된다 ... : ( – Anand

+0

'form_remote_tag '에 의해 생성 된 코드를 게시 할 수 있습니까? – nfm

관련 문제