การตรวจสอบแบบฟอร์มที่กำหนดเอง - Magento


18

ฉันกำลังพยายามใช้การตรวจสอบแบบฟอร์มที่กำหนดเองใน Magento โดยใช้ jQuery แต่ฉันไม่แน่ใจว่าฉันมีวิธีการที่ถูกต้องหรือไม่

โดยทั่วไปฉันต้องตรวจสอบต่อไปนี้:

  1. เฉพาะฟิลด์หมายเลขเท่านั้นที่จะต้องมี. 00 ในการตรวจสอบ 1 ถึง 1.00

  2. ตัวอักษรต้องเป็นตัวพิมพ์ใหญ่

  3. ไม่สามารถมีตัวเลขมากกว่า 9.99

  4. ไม่มีช่องว่างในไฟ

ฉันคิดว่าจะใช้ jQuery และได้ตั้งค่าเกี่ยวกับการเขียนบางอย่างเพื่อตรวจสอบแบบฟอร์ม:

<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>

ปัญหาคือฉันไม่สามารถหาฟังก์ชั่นสำหรับเขตข้อมูลการตรวจสอบอื่น ๆ และสามารถทำได้ด้วยความช่วยเหลือโปรด ???

คำตอบ:


25

คำถามยอดเยี่ยม!

คุณไม่ต้องการ jQueryสำหรับสิ่งนี้ คุณสามารถทำได้ด้วยเครื่องมือตรวจสอบแบบฟอร์มวีโอไอพีในตัว ก่อนอื่นให้วางจาวาสคริปต์เพื่อสร้างแบบฟอร์มสำหรับการตรวจสอบความถูกต้องในแม่แบบฟอร์มของคุณ:

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

ตอนนี้เตรียมเขตข้อมูลฟอร์มของคุณโดยเพิ่มคลาส css ที่เหมาะสม

ไม่สามารถมีตัวเลขมากกว่า 9.99

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

ไม่มีช่องว่างในฟิลด์

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

แค่นั้นแหละ! สำหรับกรณีการใช้งานที่เฉพาะเจาะจงมากขึ้นคุณจะต้องเพิ่มกฎการตรวจสอบที่กำหนดเอง:

เฉพาะฟิลด์หมายเลขเท่านั้นที่จะต้องมี. 00 ในการตรวจสอบ 1 ถึง 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));
});

ซึ่งถูกตรวจสอบแล้วด้วยสิ่งต่อไปนี้:

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

ตัวอักษรต้องเป็นตัวพิมพ์ใหญ่

อันนี้คล้าย, regex ต้องทดสอบช่วงของตัวพิมพ์ใหญ่:

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

และใช้เช่น:

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

@ ขอบคุณมากคุณช่วยฉันออกมาเร็ว ๆ นี้ !!
user1704524

@philwinkle วิธีการ จำกัด ค่าทศนิยม / ทศนิยมพร้อมกับการตรวจสอบสำหรับ 0?
Slimshadddyyy

@Vikram คุณสามารถเปิดคำถามใหม่และให้กรณีใช้งานได้หรือไม่
philwinkle

เป็นไปได้ไหมที่ VarienFormนี้ ใช้สำหรับสองรูปแบบในไฟล์เดียว
ND17

3

มีคลาสจำนวนมากสำหรับการตรวจสอบความถูกต้องของข้อมูล:

'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.'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.