উত্তর:
আপনি Magento 2 এ বৈধতার জন্য বর্গ যোগ করতে পারেন উদাহরণস্বরূপ নমুনা দেখুন। আপনি প্রায় 72 টি নিয়ম (যাচাইকরণ শ্রেণি) ব্যবহার করতে পারেন:
$fieldset->addField(
'email_from',
'text',
['name' => 'email_from', 'label' => __('Email From'), 'title' => __('Email From'), 'required' => true, 'class' => 'validate-email']
);
আরও তথ্যের জন্য উপলব্ধ নিয়মের তালিকার জন্য ব্লগ দেখুন :
এখানে ম্যাজেন্টো ২ দ্বারা সমর্থিত বৈধতা শ্রেণীর বিধিগুলির তালিকা রয়েছে rule বিধি প্রয়োগের জন্য আপনাকে কেবল CSS ক্লাস যুক্ত করতে হবে।
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 তে ফর্ম বৈধতা ব্যবহারের জন্য 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>
* কাস্টম-ফর্মটি ফর্ম আইডি আপনি এটি আপনার ফর্ম আইডি দিয়ে প্রতিস্থাপন করতে পারেন
ফর্ম বৈধতা নিয়মের তালিকা
এই নিবন্ধটি মোড়ানোর জন্য, বৈধতা নিয়মের নামের একটি তালিকা এখানে অফিসিয়াল ডকুমেন্টেশনের দিকে দ্রুত রেফারেন্স হিসাবে সরবরাহ করা হয়েছে:
ম্যাজেন্টো নিয়ম:
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/
ইউআই উপাদানগুলিতে এটি নিম্নলিখিত নমুনা কনফিগারেশনের মাধ্যমে ব্যবহার করা যেতে পারে (ম্যাজেন্টো ভি ২.২.০):
<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
।
ব্যাখ্যার জন্য ত্রুটি বার্তাগুলি সহ সমস্ত কী দখল করতে এই স্ক্রিপ্টটি কেবল লিখেছেন:
এই পান্ডুলিপি:
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
আপনি যদি / গ্রাহক / অ্যাকাউন্ট / তৈরি পৃষ্ঠার রেফারেন্স নেন তবে আপনি নীচের কোডটির নীচের অংশটি ফর্মের নীচে দেখতে পাবেন:
<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>
এবং আপনি যদি ফর্মটির ইনপুট বৈশিষ্ট্যগুলি পরীক্ষা করে থাকেন তবে আপনি class
নতুন সহ নতুন বৈশিষ্ট্যের মতো ম্যাজেন্টো 1 দেখতে পাবেনdata-validate
অ্যাট্রিবিউটের । এটি পদক্ষেপের ভিত্তি হতে পারে।
বৈধকরণের জন্য কীগুলি ফাইল:
ফর্ম তৈরির জন্য ইউআই উপাদান ব্যবহার করার সময় আমরা নীচের মতো বৈধতাটি ব্যবহার করতে পারি, এটি ম্যাজেন্টো ২.১.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
ইত্যাদি could
<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
ইত্যাদি
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-uthoration-example/
"নো-হোয়াইটস্পেস" বিকল্পটি সঠিকভাবে কাজ করে না (কমপক্ষে ম্যাজেন্টো ২.১ এ)। এটি যে কোনও ধরণের "স্পেস" অক্ষরটিতে একটি ত্রুটি বার্তা ট্রিগার করে। মানগুলি "আমাকে পরীক্ষা করুন" এবং "আমাকে পরীক্ষা করুন" একই ত্রুটি ফিরে আসবে।