Magento 2 - फॉर्म सत्यापन


32

क्या Magento 2 में नए फॉर्म सत्यापन विशेषताओं का अवलोकन है?

जवाबों:


37

आप Magento 2 में सत्यापन के लिए वर्ग जोड़ सकते हैं। उदाहरण bellow देखें। आपके उपयोग के लिए लगभग 72 नियम (सत्यापन वर्ग) हैं:

$fieldset->addField(
    'email_from',
    'text',
    ['name' => 'email_from', 'label' => __('Email From'), 'title' => __('Email From'), 'required' => true, 'class' => 'validate-email']
);

अधिक जानकारी के लिए उपलब्ध नियमों की सूची के लिए ब्लॉग देखें :

यहां मैजेंटो द्वारा समर्थित सत्यापन वर्गों के नियमों की सूची है। आपको नियम लागू करने के लिए बस सीएसएस वर्ग जोड़ना होगा।

min_text_length
max_text_length
max-words
min-words
range-words
letters-with-basic-punc
alphanumeric
letters-only
no-whitespace
zip-range
integer
vinUS
dateITA
dateNL
time
time12h
phoneUS
phoneUK
mobileUK
stripped-min-length
email2
url2
credit-card-types
ipv4
ipv6
pattern
validate-no-html-tags
validate-select
validate-no-empty
validate-alphanum-with-spaces
validate-data
validate-street
validate-phoneStrict
validate-phoneLax
validate-fax
validate-email
validate-emailSender
validate-password
validate-admin-password
validate-url
validate-clean-url
validate-xml-identifier
validate-ssn
validate-zip-us
validate-date-au
validate-currency-dollar
validate-not-negative-number
validate-zero-or-greater
validate-greater-than-zero
validate-css-length
validate-number
validate-number-range
validate-digits
validate-digits-range
validate-range
validate-alpha
validate-code
validate-alphanum
validate-date
validate-identifier
validate-zip-international
validate-state
less-than-equals-to
greater-than-equals-to
validate-emails
validate-cc-number
validate-cc-ukss
required-entry
checked
not-negative-amount
validate-per-page-value-list
validate-new-password
validate-item-quantity
equalTo

2
क्या कोई उदाहरण है कि पैटर्न का उपयोग कैसे करें? tnx
एंटोनियो पेडीकिनि

35

Magento 2 में फ़ॉर्म सत्यापन का उपयोग करने के 3 अलग-अलग तरीके हैं

जावास्क्रिप्ट सत्यापन को सक्षम करने के लिए अपने टेम्पलेट में निम्नलिखित कोड का उपयोग करें

<form class="form" id="custom-form" method="post" autocomplete="off">
 <fieldset class="fieldset">
     <legend class="legend"><span><?php echo __('Personal Information') ?></span></legend><br>
      <div class="field required">
          <label for="email_address" class="label"><span><?php echo __('Email') ?></span></label>
          <div class="control">
              <input type="email" name="email" id="email_address" value="" title="<?php echo __('Email') ?>" class="input-text" data-validate="{required:true, 'validate-email':true}">
          </div>
      </div>
 </fieldset>
 <div class="actions-toolbar">
      <div class="primary">
          <button type="submit" class="action submit primary" title="<?php  echo __('Submit') ?>"><span><?php echo __('Submit') ?></span></button>
      </div>
  </div>
</form>

1

<script type="text/x-magento-init">
    {
        "#custom-form": {
            "validation": {}
        }
    }
</script>

2

<form data-mage-init='{"validation": {}}' class="form" id="custom-form" method="post" autocomplete="off">

3

<script type="text/javascript">
require([
    'jquery',
    'mage/mage'
], function($){

   var dataForm = $('#custom-form');
   dataForm.mage('validation', {});

});
</script>

* कस्टम-फॉर्म फॉर्म आईडी है जिसे आप अपनी फॉर्म आईडी से बदल सकते हैं

प्रपत्र सत्यापन नियमों की सूची

इस लेख को लपेटने के लिए, सत्यापन नियम के नामों की एक सूची यहां आधिकारिक दस्तावेज की ओर त्वरित संदर्भ के रूप में प्रदान की गई है:

Magento के नियम:

validate-no-html-tags

validate-select

validate-no-empty

validate-alphanum-with-spaces

validate-data

validate-street

validate-phoneStrict

validate-phoneLax

validate-fax

validate-email

validate-emailSender

validate-password

validate-admin-password

validate-customer-password

validate-url

validate-clean-url

validate-xml-identifier

validate-ssn

validate-zip-us

validate-date-au

validate-currency-dollar

validate-not-negative-number

validate-zero-or-greater

validate-greater-than-zero

validate-css-length

validate-number

required-number

validate-number-range

validate-digits

validate-digits-range

validate-range

validate-alpha

validate-code

validate-alphanum

validate-date

validate-date-range

validate-cpassword

validate-identifier

validate-zip-international

validate-one-required

validate-state

required-file

validate-ajax-error

validate-optional-datetime

validate-required-datetime

validate-one-required-by-name

less-than-equals-to

greater-than-equals-to

validate-emails

validate-cc-type-select

validate-cc-number

validate-cc-type

validate-cc-exp

validate-cc-cvn

validate-cc-ukss

validate-length

required-entry

not-negative-amount

validate-per-page-value-list

validate-per-page-value

validate-new-password

required-if-not-specified

required-if-all-sku-empty-and-file-not-loaded

required-if-specified

required-number-if-specified

datetime-validation

required-text-swatch-entry

required-visual-swatch-entry

required-dropdown-attribute-entry

Validate-item-quantity

validate-grouped-qty

validate-one-checkbox-required-by-name

validate-date-between

validate-dob

max-words

min-words

range-words

letters-with-basic-punc

alphanumeric

letters-only

no-whitespace

zip-range

integer

vinUS

dateITA

dateNL

time

time12h

phoneUS

phoneUK

mobileUK

stripped-min-length

email2

url2

credit-card-types

ipv4

ipv6

pattern

allow-container-className

jQuery के नियम:

required,

remote,

email,

url,

date,

dateISO,

number,

digits,

creditcard,

equalTo,

maxlength,

minlength,

rangelength,

range,

max,

min

उल्लेख http://inchoo.net/magento-2/validate-custom-form-in-magento-2/


मैं Magento के 2can में सर्वर साइड सत्यापन लागू करना चाहता हूं आप pls मुझे किसी भी लिंक या डॉक्टर को साझा करें,
खुश्बू_सिप

मुझे लगता है कि आप पहले से ही यहां सवाल पूछ चुके हैं। Magento.stackexchange.com/questions/161300/… इस लिंक से अन्य मदद मिल सकती है
वैभव अहलपारा

9

UI घटकों में इसका उपयोग नमूना विन्यास (Magento v2.2.0) द्वारा किया जा सकता है:

<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <fieldset name="general">
        <field name="priority" sortOrder="1000" formElement="input">
            <settings>
                <validation>
                    <rule name="not-negative-amount" xsi:type="boolean">true</rule>
                </validation>
                [...]
            </settings>
        </field>
    </fieldset>
</form>

फ़ाइल में और उदाहरण देखें:
vendor/magento/module-cms/view/adminhtml/ui_component/cms_page_form.xml

यूआई कंपोनेंट में वेरिलेटर्स लिस्ट यह पाया जा सकता है
vendor/magento/module-ui/view/base/web/js/lib/validation/rules.js

स्पष्टीकरण के लिए त्रुटि संदेशों के साथ सभी कुंजियों को हथियाने के लिए बस यह स्क्रिप्ट लिखी गई है:

  • आवश्यक-प्रविष्टि:
    यह एक आवश्यक फ़ील्ड है।
  • मान्य-अल्फ़ान्यूम-विथ-स्पेस:
    कृपया केवल अक्षर (az या AZ), संख्या (0-9) या रिक्त स्थान का उपयोग केवल इस क्षेत्र में करें।
  • phoneUK:
    कृपया एक मान्य फ़ोन नंबर निर्दिष्ट करें
  • मान्य-ईमेल:
    कृपया एक मान्य ईमेल पता दर्ज करें (Ex: johndoe@domain.com)।
  • ipv4:
    कृपया एक मान्य IP v4 पता दर्ज करें।
  • जाँच की:
    यह एक आवश्यक क्षेत्र है।
  • मान्य-चयन:
    कृपया एक विकल्प चुनें।
  • ipv6:
    कृपया एक मान्य IP v6 पता दर्ज करें।
  • समय:
    कृपया 00:00 और 23:59 के बीच एक मान्य समय दर्ज करें
  • मान्य संख्या:
    कृपया इस क्षेत्र में एक मान्य संख्या दर्ज करें।
  • मान्य-फोनलैक्स:
    कृपया एक वैध फ़ोन नंबर दर्ज करें। उदाहरण के लिए (123) 456-7890 या 123-456-7890।
  • दिनांक:
    कृपया सही तिथि दर्ज करें

  • मान्य- xml- पहचानकर्ता: कृपया एक मान्य XML-पहचानकर्ता दर्ज करें (उदा: something_1, block5, id-4)।
  • validate-clean-url:
    कृपया एक मान्य URL दर्ज करें। उदाहरण के लिए http://www.example.com या www.example.com।
  • मान्य-व्यवस्थापक-पासवर्ड:
    संख्यात्मक और अक्षर दोनों का उपयोग करते हुए कृपया 7 या अधिक वर्ण दर्ज करें।
  • validate-no-html-tags:
    HTML टैग्स की अनुमति नहीं है।
  • मान्य-पूर्णांक:
    कृपया इस क्षेत्र में एक वैध पूर्णांक दर्ज करें।
  • मान्य-डेटा:
    कृपया इस क्षेत्र में केवल अक्षर (az या AZ), संख्या (0-9) या अंडरस्कोर (_) का उपयोग करें, और पहला अक्षर एक अक्षर होना चाहिए।
  • मान्य-cc-ukss:
    कृपया स्विच / सोलो कार्ड प्रकार के लिए अंक संख्या या प्रारंभ तिथि दर्ज करें।
  • न्यूनतम-शब्द:
    कृपया कम से कम {0} शब्द दर्ज करें।
  • अल्फ़ान्यूमेरिक:
    अक्षर, संख्या, स्थान या केवल अंडरस्कोर करें
  • मान्य-पहचानकर्ता:
    कृपया एक मान्य URL कुंजी दर्ज करें (Ex: "example-page", "example-page.html" या "otherlevel / example-page")।
  • मान्य-सड़क:
    कृपया इस क्षेत्र में केवल अक्षर (az या AZ), संख्या (0-9), स्थान और "#" का उपयोग करें।
  • मान्य-ज़िप-अंतर्राष्ट्रीय:
    कृपया एक मान्य ज़िप कोड दर्ज करें।
  • मान्य तिथि:
    कृपया मान्य तिथि दर्ज करें।
  • मान्य-से अधिक-शून्य:
    कृपया इस क्षेत्र में 0 से अधिक संख्या दर्ज करें।
  • मान्य-अंक:
    कृपया इस क्षेत्र में एक मान्य संख्या दर्ज करें।

  • मान्य- ssn: कृपया एक वैध सामाजिक सुरक्षा नंबर दर्ज करें (उदा: 123-45-6789)।
  • नकारात्मक-राशि नहीं:
    कृपया इस क्षेत्र में सकारात्मक संख्या दर्ज करें।
  • मान्य-अधिकतम-आकार:
    जिस फ़ाइल को आप अपलोड करने का प्रयास कर रहे हैं, वह अधिकतम फ़ाइल आकार सीमा से अधिक है।
  • मान्य-फैक्स:
    कृपया एक वैध फैक्स नंबर दर्ज करें (उदा: 123-456-7890)।
  • मान्य-अगर-टैग-स्क्रिप्ट-मौजूद:
    कृपया SRC विशेषता के साथ या दस्तावेज़ में जावास्क्रिप्ट को शामिल करने के लिए उचित सामग्री के साथ टैग SCRIPT का उपयोग करें।
  • min_text_length:
    कृपया {0} प्रतीकों से अधिक या बराबर दर्ज करें।
  • मान्य-तिथि-अ:
    कृपया इस तिथि प्रारूप का उपयोग करें: dd / mm / yyyy। उदाहरण के लिए 17/03/2006 मार्च 17, 2006 के लिए।
  • mobileUK:
    कृपया एक मान्य मोबाइल नंबर निर्दिष्ट करें
  • पत्र-साथ-बुनियादी-दंड:
    पत्र या विराम चिह्न केवल कृपया
  • मान्य-संख्या-श्रेणी:
    मान निर्दिष्ट सीमा के भीतर नहीं है।
  • phoneUS:
    कृपया एक मान्य फ़ोन नंबर निर्दिष्ट करें
  • date_range_max:
    तिथि निर्दिष्ट सीमा के भीतर नहीं है।
  • मान्य-श्रेणी:
    मान निर्दिष्ट सीमा के भीतर नहीं है।
  • आयु:
    निर्दिष्ट वाहन पहचान संख्या (VIN) अमान्य है।
  • श्रेणी-शब्द:
    कृपया {0} और {1} शब्दों के बीच दर्ज करें।
  • validate-zip-us:
    कृपया एक मान्य ज़िप कोड दर्ज करें (उदा: 90602 या 90602-1234)।
  • मान्य-ईमेल:
    कृपया अल्पविराम द्वारा अलग किए गए मान्य ईमेल पते दर्ज करें। उदाहरण के लिए, johndoe@domain.com, johnsmith@domain.com।
  • मान्य-सीएसएस-लंबाई:
    कृपया एक वैध सीएसएस-लंबाई इनपुट करें (उदाहरण: 100px, 77pt, 20em, .5ex या 50%)।
  • zip-range:
    आपका ज़िप-कोड 902xx-xxxx से 905-xx-xxxx तक होना चाहिए
  • validate-phoneStrict:
    कृपया एक मान्य फ़ोन नंबर दर्ज करें। उदाहरण के लिए (123) 456-7890 या 123-456-7890।
  • dateNL:
    Vul hier een geldige डेटम इन।
  • पत्र-केवल:
    पत्र केवल कृपया
  • max_text_length:
    कृपया {0} प्रतीकों से कम या बराबर दर्ज करें।
  • मान्य-नहीं-ऋणात्मक-संख्या:
    कृपया इस क्षेत्र में संख्या ० या उससे अधिक दर्ज करें।
  • मान्य-प्रति-पृष्ठ-मूल्य-सूची:
    कृपया मान्य मान दर्ज करें, उदा: 10,20,30
  • नो-व्हाट्सएप:
    नो व्हाइट स्पेस प्लीज
  • मान्य-राज्य:
    कृपया राज्य / प्रांत का चयन करें।
  • validate-url:
    कृपया एक मान्य URL दर्ज करें। प्रोटोकॉल आवश्यक है (http: //, https: // या ftp: //)।
  • date_range_min:
    तिथि निर्दिष्ट सीमा के भीतर नहीं है।
  • मान्य-अंक-श्रेणी:
    मान निर्दिष्ट सीमा के भीतर नहीं है।
  • अधिक से अधिक-बराबर:
    कृपया {0} से अधिक या उसके बराबर मान दर्ज करें।
  • मान्य-नहीं-खाली:
    रिक्त मान।
  • मान्य-शून्य या अधिक:
    कृपया इस क्षेत्र में 0 या अधिक संख्या दर्ज करें।
  • मान्य-सीसी-संख्या:
    कृपया एक मान्य क्रेडिट कार्ड नंबर दर्ज करें।
  • मान्य-ईमेलसेंडर:
    कृपया एक मान्य ईमेल पता दर्ज करें (Ex: johndoe@domain.com)।
  • मान्य-नया-पासवर्ड:
    कृपया 6 या अधिक वर्ण दर्ज करें। लीडिंग और ट्रेलिंग स्पेस को नजरअंदाज किया जाएगा।
  • मान्य-ग्राहक-पासवर्ड:
    इस क्षेत्र की न्यूनतम लंबाई% 1 प्रतीकों के बराबर या उससे अधिक होनी चाहिए। लीडिंग और ट्रेलिंग स्पेस को नजरअंदाज किया जाएगा।
  • मान्य-पासवर्ड:
    कृपया 6 या अधिक वर्ण दर्ज करें। लीडिंग और ट्रेलिंग स्पेस को नजरअंदाज किया जाएगा।

  • सम -से- समतुल्य : कृपया {0} से कम या उसके बराबर मान दर्ज करें।
  • मान्य-मुद्रा-डॉलर:
    कृपया एक वैध $ राशि दर्ज करें। उदाहरण के लिए $ 100.00।
  • time12h:
    कृपया एक मान्य समय दर्ज करें, 00:00 बजे और 12:00 बजे के बीच
  • मान्य-अल्फ़ान्यूम:
    कृपया इस क्षेत्र में केवल अक्षर (az या AZ) या संख्या (0-9) का उपयोग करें। कोई स्थान या अन्य वर्ण अनुमत नहीं हैं।
  • मान्य-आइटम-मात्रा:
    हम इस फ़ाइल एक्सटेंशन प्रकार को पहचान या समर्थन नहीं करते हैं।
  • मान्य-कोड:
    कृपया इस क्षेत्र में केवल अक्षरों (az), संख्याओं (0-9) या अंडरस्कोर (_) का उपयोग करें और पहला अक्षर एक अक्षर होना चाहिए।
  • email2:
    कृपया एक मान्य क्रेडिट कार्ड नंबर दर्ज करें।
  • अधिकतम-शब्द:
    कृपया {0} शब्द या कम दर्ज करें।
  • स्ट्रिप्ड-मिन-लंबाई:
    कृपया कम से कम {0} अक्षर दर्ज करें
  • मान्य-अल्फ़ा:
    कृपया इस क्षेत्र में केवल अक्षरों (az या AZ) का उपयोग करें।
  • पैटर्न:
    अमान्य प्रारूप।
  • पूर्णांक:
    एक सकारात्मक या नकारात्मक गैर-दशमलव संख्या कृपया

लिपी:

declare -A list
key=''
while IFS= read -r line; do
#  echo "${line} -"
  if [ -z "${key:-}" ]; then
    # match validation key
    match=$(echo "${line}" | grep -Eo "^        ['\"]([A-Za-z0-9-]|_)+" | tr -d "' ")
    if [ -n "${match}" ]; then
      key=${match}
    fi
  else
    # match message
    match=$(echo "${line}" | sed -rn "s|.*\\$\.mage\.__[(]['\"](.*)['\"][)].*|\1|p")
    if [ -n "${match}" ]; then
      list[${key}]=${match}
      key=''
    fi
  fi
done < "${DOCROOT_DIR:-/var/www/html}/vendor/magento/module-ui/view/base/web/js/lib/validation/rules.js"

for i in "${!list[@]}"
do
  printf "%s:\n    %s\n" "${i}" "${list[$i]}"
done

3

यदि आप / ग्राहक / खाता / पेज बनाने का संदर्भ लेते हैं, तो आप फॉर्म के नीचे निम्नलिखित कोड देख सकते हैं:

<script>
require([
    'jquery',
    'mage/mage'
], function($){

    var dataForm = $('#form-validate');
    var ignore = null;

    dataForm.mage('validation', {
            ignore: ignore ? ':hidden:not(' + ignore + ')' : ':hidden'
        }).find('input:text').attr('autocomplete', 'off');

});
</script>

और यदि आप प्रपत्र की इनपुट विशेषताओं पर जाँच करते हैं, तो आप Magento 1 classको नई data-validateविशेषताओं के साथ विशेषता मानों की तरह देख सकते हैं । यह कदम बढ़ाने का आधार हो सकता है।

सत्यापन के लिए कुंजी फाइलें:


जवाब के लिए Thx। मुझे नई विशेषता डेटा-मान्य भी मिली, लेकिन यह दिलचस्प है कि क्या सत्यापन उपलब्ध हैं। मेरे मामले में मैं एक चेकबॉक्स और
रेडियोबटन के

मैं Magento 2 में सर्वर साइड सत्यापन लागू करना चाहता हूं क्या आप pls मुझे किसी भी लिंक या डॉक्टर को साझा कर सकते हैं।
ख़ुशबू_शिल्ली

2

जब यूआई घटकों का उपयोग करेंफॉर्म बनाने के का उपयोग करते समय, हम नीचे दिए गए सत्यापन का उपयोग कर सकते हैं, यह Magento 2.1.x में काम करता है, मैं अभी तक अन्य संस्करण में इसका परीक्षण नहीं करता हूं।

<field name="priority">
    <argument name="data" xsi:type="array">
        <item name="config" xsi:type="array">
            <item name="dataType" xsi:type="string">text</item>
            <item name="label" xsi:type="string" translate="true">Priority</item>
            <item name="formElement" xsi:type="string">input</item>
            <item name="source" xsi:type="string">module_name</item>
            <item name="dataScope" xsi:type="string">priority</item>
            <item name="validation" xsi:type="array">
                <item name="required-entry" xsi:type="boolean">true</item>
                <item name="validate-integer" xsi:type="boolean">true</item>
            </item>
        </item>
    </argument>
</field>

सूचना सत्यापन आइटम उस में हम जोड़ सकता है, सत्यापन नियमों , जैसे required-entry,validate-integer आदि

<item name="validation" xsi:type="array">
     <item name="required-entry" xsi:type="boolean">true</item>
     <item name="validate-integer" xsi:type="boolean">true</item>
     <item name="validation_rule_name" xsi:type="boolean">true</item>
     ...
</item>

सभी सत्यापन नियम आपको फ़ाइल में मिल सकते हैं vendor/magento/module-ui/view/base/web/js/lib/validation/rules.js, जैसे validate-date, validate-emailsआदि।


1

मुझे Magento2 फॉर्म सत्यापन के लिए समान आवश्यकता है और मैंने यह कोड किया है

सबसे पहले हम एक टेस्ट फॉर्म सेटअप करेंगे

<!-- form tag -->
<form class="form" id="custom-form-id" method="post" autocomplete="off">
   <fieldset class="fieldset">
       <legend class="legend"><span><?php echo __('User Personal Information') ?></span></legend><br>
        <div class="field required">
            <!-- form field -->
            <label for="email_address" class="label"><span><?php echo __('Email') ?></span></label>
            <div class="control">
                <input type="email" name="email" id="email_address" value="" title="<?php echo __('Email') ?>" class="input-text" data-validate="{required:true, 'validate-email':true}">
            </div>
        </div>
   </fieldset>
   <!-- submit button -->
   <div class="actions-toolbar">
        <div class="primary">
            <button type="submit" class="action submit primary" title="<?php  echo __('Submit') ?>"><span><?php echo __('Submit') ?></span></button>
        </div>
    </div>
</form>

Magento2 फॉर्म सत्यापन के लिए जावास्क्रिप्ट सत्यापन सक्षम करने के लिए

<!-- enable javascript validation for custom-form-id -->
<script type="text/x-magento-init">
    {
        "#custom-form-id": {
            "validation": {}
        }
    }
</script>

संदर्भ :: http://www.onlinecode.org/magento2-form-validation-example/


0

"नहीं-व्हाट्सएप" विकल्प सही ढंग से काम नहीं करता है (कम से कम मैगेंटो 2.1 पर)। यह किसी भी प्रकार के "स्पेस" चरित्र पर एक त्रुटि संदेश चलाता है। मान "मुझे परीक्षण करें" और "मुझे परीक्षण करें" वही त्रुटि लौटाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.