2009-12-05 256 views
0

有人用這個jquery插件進行表單驗證嗎?jquery驗證插件

http://docs.jquery.com/Plugins/Validation

我無法弄清楚如何使用它。它沒有在文檔中說明如何命名html表單元素以使其與validate()方法一起工作。

和問題2,什麼php類驗證有用於服務器端?

編輯:爲什麼犯規這項工作:

$("#register_box_form").validate({ 
    rules: { 
     name: { 
      required: true, 
      minlength: 3 
     } 

     email: { 
      required: true, 
      minlength: 3, 
      email: true 
     } 
    } 
}); 
+0

?? ??你真的閱讀過所有的文檔,並在插件頁面http://jquery.bassistance.de/validate/demo/嘗試了演示(+源代碼),並在頁面末尾嘗試了所有這些演示。我甚至不明白「如何命名錶單元素」的意思,他們不需要任何特殊的名稱。看看這些演示,當你嘗試了幾件事情時,回來更具體的問題。你如何做你的服務器端取決於你。這與jQuery – jitter 2009-12-05 01:05:35

+0

有什麼關係,顯然我必須爲我的表單元素添加一些預定義的id值和類值。 這將使它與插件一起工作,它會自動驗證電子郵件字段。但我通過查看示例代碼來了解這一點。還有什麼其他的「元標籤」,我必須使用它來使它與密碼,手機領域等工作,這是什麼文件? – 2009-12-05 01:09:33

回答

1

<input type="text" id="email" name="email" class="required email" />,在該代碼中,值類屬性「必要」和「電子郵件」充當相同規則驗證方法在文件準備功能限定。這意味着class="required email"等於,

email: { 
      required: true, 
      email: true 
     } 

在上例中。 我會告訴包含jquery驗證所需的步驟。 (你可能已經知道每一步) 對於使用jquery validtion, 首先你必須包含主要的jquery庫js文件和jquery驗證插件js文件。 然後在就緒函數上的文檔中,您必須將驗證函數綁定到所需的表單(如上述文章的示例中所述)。 您可以在此驗證函數中聲明驗證規則,也可以如上所述在相關輸入元素的class屬性中聲明值。 有時,我對輸入元素的id屬性和name屬性使用不同的值時遇到了問題。我不知道它的原因。因此,請嘗試給出id和name屬性的相同值,並檢查是否還有驗證不起作用。

您可以使用已包含的驗證規則,如電子郵件,網址,號碼,數字等。 還有一個叫做「remote」的規則,可用於發送ajax請求並在服務器端進行驗證。 除此之外,您可以根據需要定義自定義規則。 例如,我使用以下代碼來添加自定義驗證規則,以確保密碼處於正確的密碼策略中。

$.validator.addMethod("passwd_policy", function(value, element, param) { 
     return this.optional(element) 
      || (value.length >= 8 
       && /.[!,@,#,$,%,^,&,*,?,_,~]/.test(value) 
       && /[0-9]/.test(value) 
       && /[a-z]/.test(value) 
       && /[A-Z]/.test(value)); 
    },"Your password must be at least 8 characters long, <br/>contain at least one number, <br/>" 
     +" at least one special character (!,@,#,$,%,^,&,*,?,_ ,~),<br/> at least one uppercase" 
     +" character <br/>and at least one lowercase character."); 

您可以添加此自定義驗證方法來驗證字段是否與使用內置方法相同。就像

"txt_passwd": { 
     passwd_policy: true 
    }, 
+0

感謝您的回答。該文檔不太清楚如何在複合規則列表中使用自定義規則方法,並完全清除它。 – Steven 2010-11-10 03:02:33

0

您指定在表單中的字段規則。它們是鍵/值對,其中鍵是該字段的名稱。

E.g.與領域和(在http://docs.jquery.com/Plugins/Validation/validate#options從文檔)電子郵件

$(".selector").validate({ 
    rules: { 
    // simple rule, converted to {required:true} 
    name: "required", 
    // compound rule 
    email: { 
     required: true, 
     email: true 
    } 
    } 
}) 

表單您可以使用Zend Framework對PHP的一部分。它有一些JQuery integration,雖然不適用於驗證插件(尚未?)。

編輯:在您的示例中,規則文字的兩個元素之間缺少一個逗號。

<html> 
    <head> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
    <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
     $("#register_box_form").validate({ 
      rules: { 
      name: { 
       required: true, 
       minlength: 3 
      }, 
      email: { 
       required: true, 
       email: true 
      } 
      } 
     }); 
     }); 
    </script> 
    </head> 
    <body> 
    <form method="post" action="?" id="register_box_form"> 
     <div> 
     <input type="text" name="name" /><br /> 
     <input type="text" name="email" /><br /> 
     <input type="submit" /> 
     </div> 
    </form> 
    </body> 
</html> 
+0

我不使用zend框架。是否有任何獨立的PHP驗證類,我可以下載和使用驗證與此jQuery插件相同的方式? 這是最好的jQuery插件嗎? – 2009-12-05 01:18:51

+0

您不必使用整個框架將表單部件提供給您。但也許http://docs.php.net/filter是你的東西。 – VolkerK 2009-12-05 02:24:34