2012-08-10 81 views
0

我需要使用jQuery驗證表單,然後將其提交給JavaScript文件,該文件將其重定向到確認/發送郵件頁面。我這樣做的原因是爲了防止垃圾郵件無法將某些類型的驗證碼放入。我基本上是爲表單的頁面發送錯誤的URL,然後將其更改爲外部JavaScript文件中的正確頁面。除非表單在驗證之前提交,否則一切都很好。我可以看到它在提交之前稍微標記錯誤。使用jQuery提交到javaScript之前驗證表單然後到確認頁面

驗證JS:

<script type="text/javascript"> 
$(document).ready(function(){ 

    $('#contactform').submit(function() { 
     return $('#contactform').valid(); 
    }); 

     $("#contactform").validate(); 

      $("#Name").rules("add", { 
     required: true, 
     minlength: 5, 
     messages: { 
     required: "Required", 
     minlength: jQuery.format("Minimum {0} Characters Required") 
    } 
    }); 
     $("#Question").rules("add", { 
     required: true, 
     minlength: 20, 
     messages: { 
     required: "Required", 
     minlength: jQuery.format("Question Must Be {0} Character Long") 
    } 

    }); 

    $("#math").rules("add", { 
     required: true, 
     equalTo: "#math2", 
     messages: { 
     required: "Solve Security Question.", 
    } 
    }); 


}); 
</script> 

外部JS重定向:

function submitCommentForm() { 
    // Change the form action to the real submission page 
    document.getElementById('contactform').action = "confirmation.php"; 
    // Submit the form 
    document.getElementById('contactform').submit(); 
} 
+2

有更好的方法來作出比提交你在做什麼阻止垃圾郵件。你確定你的方法(如果它的工作原理),你也可以這樣做,那麼禁用JavaScript的用戶將無法提交表單? – 2012-08-10 14:50:01

+0

是的,我知道沒有js用戶將無法提交表單。有什麼更好的方法?過去幾年我一直在使用jquery驗證,並在幾天前才收到垃圾郵件。 – pixelJockey 2012-08-10 14:52:55

+0

在本網站中搜索「蜜罐」,你會發現一些可能對你有幫助的問題。我曾多次以垃圾郵件的形式實施這些方案,並取得了很好的成功。 – 2012-08-10 14:56:33

回答

5

變化

$('#contactform').submit(function() { 
    return $('#contactform').valid(); 
}); 

$('#contactform').submit(function() { 
    if($(this).valid()){ 
    submitCommentForm(); 
    }else{ 
    alert('Please fix the errors within the form.'); 
    } 
    return false; 
}); 
0

你可以使用jQuery插件來驗證表單數據。

這是一個很好的 - >Ketchup

相關問題