Xác thực mẫu tùy chỉnh - Magento


18

Tôi đang cố gắng thực hiện một số xác thực mẫu tùy chỉnh trong Magento bằng jQuery nhưng tôi không chắc liệu mình có phương pháp đúng không.

Về cơ bản, tôi cần xác nhận những điều sau đây:

  1. Chỉ các trường số cần có 0,00 để xác thực 1 đến 1,00

  2. Chữ cái cần viết hoa

  3. Không thể có số lớn hơn 9,99

  4. Không có khoảng trống trong các hình ảnh

Tôi đang suy nghĩ để sử dụng jQuery và đã bắt đầu viết một cái gì đó để xác thực mẫu:

<script>
    jQuery(document).ready(function() {
        jQuery.validator.addMethod("integer", function(value, element) {
            return this.optional(element) || /^-?\d+$/.test(value);
        }, "A positive or negative non-decimal number please");

        function(field, length) {
            if (!numericRegex.test(length)) {
                return false;
            }
            return (field.value.length <= parseInt(length, 4));
        },
    }
</script>

Vấn đề là tôi không thể tìm thấy các chức năng cho các trường xác nhận khác và có thể làm gì với một số trợ giúp xin vui lòng ???

Câu trả lời:


25

Câu hỏi tuyệt vời!

Bạn không cần jQuery cho việc này. Bạn có thể làm điều này với trình xác nhận mẫu Magento tích hợp. Đầu tiên, javascript để thiết lập biểu mẫu để xác thực phải được đặt trong mẫu biểu mẫu của bạn:

<script type="text/javascript">
  var myForm= new VarienForm('[your form id]', true);
</script>

Bây giờ chuẩn bị các trường mẫu của bạn bằng cách thêm các lớp css thích hợp.

Không thể có số lớn hơn 9,99

<input type="text" class="required-entry validate-digits-range digits-range-0-9.99"/>

Không có khoảng trống trên các trường

<input type="text" class="required-entry validate-alphanum"/>

Đó là nó! Đối với các trường hợp sử dụng cụ thể hơn, bạn sẽ phải thêm quy tắc xác thực tùy chỉnh:

Chỉ các trường số cần có 0,00 để xác thực 1 đến 1,00

Validation.add('validate-float','Input must be in the form of 0.00',function(v){
    return Validation.get('IsEmpty').test(v) || (!/\./.test(v));
});

Mà sau đó được xác nhận với những điều sau đây:

<input type="text" class="required-entry validate-float"/>

Chữ cái cần viết hoa

Cái này cũng tương tự, regex phải kiểm tra một loạt chữ hoa:

Validation.add('validate-uppercase','Input must be in uppercase',function(v){
    return Validation.get('IsEmpty').test(v) || (!/^[A-Z]+$/.test(v));
});

Và được sử dụng như:

<input type="text" class="required-entry validate-uppercase"/>

@thanks bro, gần đây bạn đã giúp tôi !!
dùng1704524

@philwinkle làm thế nào để hạn chế giá trị float / thập phân cùng với xác thực cho 0?
Slimshadddyyy

@Vikram bạn có thể mở một câu hỏi mới và đưa ra một trường hợp sử dụng không?
philwinkle

điều này có thể sử dụng VarienForm này cho hai dạng trong một tệp duy nhất
ND17 18/03/15

3

Có rất nhiều lớp để xác thực dữ liệu:

'validate-no-html-tags'         => 'HTML tags are not allowed'
'validate-select'               => 'Please select an option.'
'required-entry'                => 'This is a required field.'
'validate-number'               => 'Please enter a valid number in this field.'
'validate-number-range'         => 'The value is not within the specified range.'
'validate-digits'               => 'Please use numbers only in this field. Please avoid spaces or other characters such as dots or commas.'
'validate-digits-range'         => 'The value is not within the specified range.'
'validate-alpha'                => 'Please use letters only (a-z or A-Z) in this field.'
'validate-code'                 => 'Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.'
'validate-alphanum'             => 'Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed.'
'validate-alphanum-with-spaces' => 'Please use only letters (a-z or A-Z), numbers (0-9) or spaces only in this field.'
'validate-street'               => 'Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field.'
'validate-phoneStrict'          => 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.'
'validate-phoneLax'             => 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.'
'validate-fax'                  => 'Please enter a valid fax number. For example (123) 456-7890 or 123-456-7890.'
'validate-date'                 => 'Please enter a valid date.'
'validate-date-range'           => 'The From Date value should be less than or equal to the To Date value.'
'validate-email'                => 'Please enter a valid email address. For example johndoe@domain.com.'
'validate-emailSender'          => 'Please use only visible characters and spaces.'
'validate-password'             => 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.'
'validate-admin-password'       => 'Please enter 7 or more characters. Password should contain both numeric and alphabetic characters.'
'validate-both-passwords'       => 'Please make sure your passwords match.'
'validate-url'                  => 'Please enter a valid URL. Protocol is required (http://, https:// or ftp://)'
'validate-clean-url'            => 'Please enter a valid URL. For example http://www.example.com or www.example.com'
'validate-identifier'           => 'Please enter a valid URL Key. For example &quot;example-page&quot;, &quot;example-page.html&quot; or &quot;anotherlevel/example-page&quot;.'
'validate-xml-identifier'       => 'Please enter a valid XML-identifier. For example something_1, block5, id-4.'
'validate-ssn'                  => 'Please enter a valid social security number. For example 123-45-6789.'
'validate-zip'                  => 'Please enter a valid zip code. For example 90602 or 90602-1234.'
'validate-zip-international'    => 'Please enter a valid zip code.'
'validate-date-au'              => 'Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006.'
'validate-currency-dollar'      => 'Please enter a valid $ amount. For example $100.00.'
'validate-one-required'         => 'Please select one of the above options.'
'validate-one-required-by-name' => 'Please select one of the options.'
'validate-not-negative-number'  => 'Please enter a number 0 or greater in this field.'
'validate-zero-or-greater'      => 'Please enter a number 0 or greater in this field.'
'validate-greater-than-zero'    => 'Please enter a number greater than 0 in this field.'
'validate-state'                => 'Please select State/Province.'
'validate-new-password'         => 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.'
'validate-cc-number'            => 'Please enter a valid credit card number.'
'validate-cc-type'              => 'Credit card number does not match credit card type.'
'validate-cc-type-select'       => 'Card type does not match credit card number.'
'validate-cc-exp'               => 'Incorrect credit card expiration date.'
'validate-cc-cvn'               => 'Please enter a valid credit card verification number.'
'validate-ajax'                 => ''
'validate-data'                 => 'Please use only letters (a-z or A-Z), numbers (0-9) or underscore(_) in this field, first character should be a letter.'
'validate-css-length'           => 'Please input a valid CSS-length. For example 100px or 77pt or 20em or .5ex or 50%.'
'validate-length'               => 'Text length does not satisfy specified text range.'
'validate-percents'             => 'Please enter a number lower than 100.'
'validate-cc-ukss'              => 'Please enter issue number or start date for switch/solo card type.'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.