How to add custom field in registration form and add jquery validation in Magento2.2.5?Remove Confirm password field in magento 2 Registration formMagento 2 : How to Add Custom Input Field in Customer Registration FormHow to create a custom field in Magento 2 user registration?Magento2 Create account form custom field server side validationCustom form field not showing validation messageMagento 2.2.3 How to change validation message Or add new custom rule in system config fieldHow to save custom frontend form to database in Magento2.2.5?Magento 1.9 How to add custom field in checkout registration formjQuery validation not working on pressing enter key in Magento2.2.5?How to remove default contact form validation in Magento2.2.5?
Was it really necessary for the Lunar Module to have 2 stages?
Why was Germany not as successful as other Europeans in establishing overseas colonies?
Examples of non trivial equivalence relations , I mean equivalence relations without the expression " same ... as" in their definition?
Please, smoke with good manners
Pawn Sacrifice Justification
Do I have an "anti-research" personality?
Why does nature favour the Laplacian?
How to create an ad-hoc wireless network in Ubuntu
When to use 1/Ka vs Kb
What is the strongest case that can be made in favour of the UK regaining some control over fishing policy after Brexit?
Tikz oriented simplex
Do I have to worry about players making “bad” choices on level up?
You look catfish vs You look like a catfish
Can a creature tell when it has been affected by a Divination wizard's Portent?
Why do computer-science majors learn calculus?
Multiple options for Pseudonyms
Python "triplet" dictionary?
Phrase for the opposite of "foolproof"
Why is current rating for multicore cable lower than single core with the same cross section?
Unexpected email from Yorkshire Bank
Given what happens in Endgame, why doesn't Dormammu come back to attack the universe?
Volunteering in England
What does YCWCYODFTRFDTY mean?
How to set the font color of quantity objects (Version 11.3 vs version 12)?
How to add custom field in registration form and add jquery validation in Magento2.2.5?
Remove Confirm password field in magento 2 Registration formMagento 2 : How to Add Custom Input Field in Customer Registration FormHow to create a custom field in Magento 2 user registration?Magento2 Create account form custom field server side validationCustom form field not showing validation messageMagento 2.2.3 How to change validation message Or add new custom rule in system config fieldHow to save custom frontend form to database in Magento2.2.5?Magento 1.9 How to add custom field in checkout registration formjQuery validation not working on pressing enter key in Magento2.2.5?How to remove default contact form validation in Magento2.2.5?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
How to add custom field in registration form and save in database and add jquery validation in Magento2.2.5?
Any help would be appreciated
magento2 jquery validation registration custom-field
add a comment |
How to add custom field in registration form and save in database and add jquery validation in Magento2.2.5?
Any help would be appreciated
magento2 jquery validation registration custom-field
please check the below given answers magento.stackexchange.com/a/272438/52244 if it match your expectation please mark as valid answer.so if someone else got some concern they can use this valid answer. more help will be appreciated.
– Kanhaiya lal
Apr 25 at 13:38
add a comment |
How to add custom field in registration form and save in database and add jquery validation in Magento2.2.5?
Any help would be appreciated
magento2 jquery validation registration custom-field
How to add custom field in registration form and save in database and add jquery validation in Magento2.2.5?
Any help would be appreciated
magento2 jquery validation registration custom-field
magento2 jquery validation registration custom-field
asked Apr 25 at 6:52
AmyAmy
36810
36810
please check the below given answers magento.stackexchange.com/a/272438/52244 if it match your expectation please mark as valid answer.so if someone else got some concern they can use this valid answer. more help will be appreciated.
– Kanhaiya lal
Apr 25 at 13:38
add a comment |
please check the below given answers magento.stackexchange.com/a/272438/52244 if it match your expectation please mark as valid answer.so if someone else got some concern they can use this valid answer. more help will be appreciated.
– Kanhaiya lal
Apr 25 at 13:38
please check the below given answers magento.stackexchange.com/a/272438/52244 if it match your expectation please mark as valid answer.so if someone else got some concern they can use this valid answer. more help will be appreciated.
– Kanhaiya lal
Apr 25 at 13:38
please check the below given answers magento.stackexchange.com/a/272438/52244 if it match your expectation please mark as valid answer.so if someone else got some concern they can use this valid answer. more help will be appreciated.
– Kanhaiya lal
Apr 25 at 13:38
add a comment |
2 Answers
2
active
oldest
votes
Adding a custom field in customer registration page
first if need then create a custom module follow this link
then need to create a file COMPANYCUSTOMMODULESetupInstallData.php
to creating custom field
<?php
namespace COMPANYCUSTOMMODULESetup;
use MagentoCustomerModelCustomer;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements MagentoFrameworkSetupInstallDataInterface
private $eavSetupFactory;
private $eavConfig;
private $attributeResource;
/**
* InstallData constructor.
* @param MagentoEavSetupEavSetupFactory $eavSetupFactory
* @param MagentoEavModelConfig $eavConfig
* @param MagentoCustomerModelResourceModelAttribute $attributeResource
*/
public function __construct(
MagentoEavSetupEavSetupFactory $eavSetupFactory,
MagentoEavModelConfig $eavConfig,
MagentoCustomerModelResourceModelAttribute $attributeResource
)
$this->eavSetupFactory = $eavSetupFactory;
$this->eavConfig = $eavConfig;
$this->attributeResource = $attributeResource;
/**
* @param ModuleDataSetupInterface $setup
* @param ModuleContextInterface $context
* @throws MagentoFrameworkExceptionAlreadyExistsException
* @throws MagentoFrameworkExceptionLocalizedException
*/
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$customField = "custom_field";
$customFieldLabel = "Custom Field 1";
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->removeAttribute(Customer::ENTITY, $customField);
$attributeSetId = $eavSetup->getDefaultAttributeSetId(Customer::ENTITY);
$attributeGroupId = $eavSetup->getDefaultAttributeGroupId(Customer::ENTITY);
$eavSetup->addAttribute(Customer::ENTITY, $customField, [
// Attribute parameters
'type' => 'varchar',
'label' => $customFieldLabel,
'input' => 'text',
'required' => true,
'visible' => true,
'user_defined' => true,
'sort_order' => 990,
'position' => 990,
'system' => 0,
]);
$attribute = $this->eavConfig->getAttribute(Customer::ENTITY, $customField);
$attribute->setData('attribute_set_id', $attributeSetId);
$attribute->setData('attribute_group_id', $attributeGroupId);
/*
//You can use this attribute in the following forms
adminhtml_checkout
adminhtml_customer // for admin page under customer edit account info
adminhtml_customer_address
customer_account_create // for store-front registration page
customer_account_edit // for store-front after logged-in account edit page
customer_address_edit
customer_register_address
*/
$attribute->setData('used_in_forms', [
'adminhtml_customer',
'customer_account_create',
'customer_account_edit'
]);
$this->attributeResource->save($attribute);
wait it will help to just create on DB level and visible in admin-level,
Need to access same custom field in store-front
so create a layout file COMPANYCUSTOMMODULEviewfrontendlayoutcustomer_account_create.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="form.additional.info">
<block class="MagentoFrameworkViewElementTemplate" name="form_additional_info_customer"
template="COMPANY_CUSTOMMODULE::additional.phtml"/>
</referenceContainer>
</body>
</page>
and to display field in store-front in registration page,
create a phtml file COMPANYCUSTOMMODULEviewfrontendtemplatesadditional.phtml
<?php
$customFieldLabel = __("Custom Field 1");
$customField = "custom_field";
?>
<div class="field <?= $customField ?> required">
<label class="label" for="<?= $customField ?>">
<span><?= $block->escapeHtml($customFieldLabel) ?></span>
</label>
<div class="control">
<input type="text" name="<?= $customField ?>" id="<?= $customField ?>" value=""
title="<?= $block->escapeHtmlAttr($customFieldLabel) ?>"
class="input-text" data-validate="required:true">
</div>
</div>
after added these files or code
run below commands :
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy
(for developer mode add -f to command)
php bin/magento cache:clear
For JS validation : In above phtml file (COMPANYCUSTOMMODULEviewfrontendtemplatesadditional.phtml
), if you need to add custom validation then use Magento Validation classes to data-validate attribute.
More help for JS validation follow this link
Note : COMPANYCUSTOMMODULE
is the custom module, if you need you can change with your custom module.
Hope this will help you.
add a comment |
Step 1 : Add your input field
<div class="field required">
<label for="username" class="label"><span><?php /* @escapeNotVerified */
echo __('Username') ?></span></label>
<div class="control">
<input type="text" name="username" id="username"
maxlength="50"
title="<?php /* @escapeNotVerified */
echo __('Username') ?>"
class="input-text"
data-validate="'maxlength':50, required:true, 'validateUsername':true">
</div>
</div>
Step 2: Add jQuery validation in the template.
<script>
requirejs([
'jquery',
'jquery/ui',
'jquery/validate',
'mage/translate',
'mage/mage',
], function ($)
$.validator.addMethod(
'validateUsername',
function (value)
return value.match(/^[a-zA-Z0-9-_@.]+$/);
,
$.mage.__('Enter a valid username. Valid characters are A-Z a-z 0-9 . _ - @.')
);
);
</script>
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "479"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f272374%2fhow-to-add-custom-field-in-registration-form-and-add-jquery-validation-in-magent%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Adding a custom field in customer registration page
first if need then create a custom module follow this link
then need to create a file COMPANYCUSTOMMODULESetupInstallData.php
to creating custom field
<?php
namespace COMPANYCUSTOMMODULESetup;
use MagentoCustomerModelCustomer;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements MagentoFrameworkSetupInstallDataInterface
private $eavSetupFactory;
private $eavConfig;
private $attributeResource;
/**
* InstallData constructor.
* @param MagentoEavSetupEavSetupFactory $eavSetupFactory
* @param MagentoEavModelConfig $eavConfig
* @param MagentoCustomerModelResourceModelAttribute $attributeResource
*/
public function __construct(
MagentoEavSetupEavSetupFactory $eavSetupFactory,
MagentoEavModelConfig $eavConfig,
MagentoCustomerModelResourceModelAttribute $attributeResource
)
$this->eavSetupFactory = $eavSetupFactory;
$this->eavConfig = $eavConfig;
$this->attributeResource = $attributeResource;
/**
* @param ModuleDataSetupInterface $setup
* @param ModuleContextInterface $context
* @throws MagentoFrameworkExceptionAlreadyExistsException
* @throws MagentoFrameworkExceptionLocalizedException
*/
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$customField = "custom_field";
$customFieldLabel = "Custom Field 1";
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->removeAttribute(Customer::ENTITY, $customField);
$attributeSetId = $eavSetup->getDefaultAttributeSetId(Customer::ENTITY);
$attributeGroupId = $eavSetup->getDefaultAttributeGroupId(Customer::ENTITY);
$eavSetup->addAttribute(Customer::ENTITY, $customField, [
// Attribute parameters
'type' => 'varchar',
'label' => $customFieldLabel,
'input' => 'text',
'required' => true,
'visible' => true,
'user_defined' => true,
'sort_order' => 990,
'position' => 990,
'system' => 0,
]);
$attribute = $this->eavConfig->getAttribute(Customer::ENTITY, $customField);
$attribute->setData('attribute_set_id', $attributeSetId);
$attribute->setData('attribute_group_id', $attributeGroupId);
/*
//You can use this attribute in the following forms
adminhtml_checkout
adminhtml_customer // for admin page under customer edit account info
adminhtml_customer_address
customer_account_create // for store-front registration page
customer_account_edit // for store-front after logged-in account edit page
customer_address_edit
customer_register_address
*/
$attribute->setData('used_in_forms', [
'adminhtml_customer',
'customer_account_create',
'customer_account_edit'
]);
$this->attributeResource->save($attribute);
wait it will help to just create on DB level and visible in admin-level,
Need to access same custom field in store-front
so create a layout file COMPANYCUSTOMMODULEviewfrontendlayoutcustomer_account_create.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="form.additional.info">
<block class="MagentoFrameworkViewElementTemplate" name="form_additional_info_customer"
template="COMPANY_CUSTOMMODULE::additional.phtml"/>
</referenceContainer>
</body>
</page>
and to display field in store-front in registration page,
create a phtml file COMPANYCUSTOMMODULEviewfrontendtemplatesadditional.phtml
<?php
$customFieldLabel = __("Custom Field 1");
$customField = "custom_field";
?>
<div class="field <?= $customField ?> required">
<label class="label" for="<?= $customField ?>">
<span><?= $block->escapeHtml($customFieldLabel) ?></span>
</label>
<div class="control">
<input type="text" name="<?= $customField ?>" id="<?= $customField ?>" value=""
title="<?= $block->escapeHtmlAttr($customFieldLabel) ?>"
class="input-text" data-validate="required:true">
</div>
</div>
after added these files or code
run below commands :
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy
(for developer mode add -f to command)
php bin/magento cache:clear
For JS validation : In above phtml file (COMPANYCUSTOMMODULEviewfrontendtemplatesadditional.phtml
), if you need to add custom validation then use Magento Validation classes to data-validate attribute.
More help for JS validation follow this link
Note : COMPANYCUSTOMMODULE
is the custom module, if you need you can change with your custom module.
Hope this will help you.
add a comment |
Adding a custom field in customer registration page
first if need then create a custom module follow this link
then need to create a file COMPANYCUSTOMMODULESetupInstallData.php
to creating custom field
<?php
namespace COMPANYCUSTOMMODULESetup;
use MagentoCustomerModelCustomer;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements MagentoFrameworkSetupInstallDataInterface
private $eavSetupFactory;
private $eavConfig;
private $attributeResource;
/**
* InstallData constructor.
* @param MagentoEavSetupEavSetupFactory $eavSetupFactory
* @param MagentoEavModelConfig $eavConfig
* @param MagentoCustomerModelResourceModelAttribute $attributeResource
*/
public function __construct(
MagentoEavSetupEavSetupFactory $eavSetupFactory,
MagentoEavModelConfig $eavConfig,
MagentoCustomerModelResourceModelAttribute $attributeResource
)
$this->eavSetupFactory = $eavSetupFactory;
$this->eavConfig = $eavConfig;
$this->attributeResource = $attributeResource;
/**
* @param ModuleDataSetupInterface $setup
* @param ModuleContextInterface $context
* @throws MagentoFrameworkExceptionAlreadyExistsException
* @throws MagentoFrameworkExceptionLocalizedException
*/
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$customField = "custom_field";
$customFieldLabel = "Custom Field 1";
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->removeAttribute(Customer::ENTITY, $customField);
$attributeSetId = $eavSetup->getDefaultAttributeSetId(Customer::ENTITY);
$attributeGroupId = $eavSetup->getDefaultAttributeGroupId(Customer::ENTITY);
$eavSetup->addAttribute(Customer::ENTITY, $customField, [
// Attribute parameters
'type' => 'varchar',
'label' => $customFieldLabel,
'input' => 'text',
'required' => true,
'visible' => true,
'user_defined' => true,
'sort_order' => 990,
'position' => 990,
'system' => 0,
]);
$attribute = $this->eavConfig->getAttribute(Customer::ENTITY, $customField);
$attribute->setData('attribute_set_id', $attributeSetId);
$attribute->setData('attribute_group_id', $attributeGroupId);
/*
//You can use this attribute in the following forms
adminhtml_checkout
adminhtml_customer // for admin page under customer edit account info
adminhtml_customer_address
customer_account_create // for store-front registration page
customer_account_edit // for store-front after logged-in account edit page
customer_address_edit
customer_register_address
*/
$attribute->setData('used_in_forms', [
'adminhtml_customer',
'customer_account_create',
'customer_account_edit'
]);
$this->attributeResource->save($attribute);
wait it will help to just create on DB level and visible in admin-level,
Need to access same custom field in store-front
so create a layout file COMPANYCUSTOMMODULEviewfrontendlayoutcustomer_account_create.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="form.additional.info">
<block class="MagentoFrameworkViewElementTemplate" name="form_additional_info_customer"
template="COMPANY_CUSTOMMODULE::additional.phtml"/>
</referenceContainer>
</body>
</page>
and to display field in store-front in registration page,
create a phtml file COMPANYCUSTOMMODULEviewfrontendtemplatesadditional.phtml
<?php
$customFieldLabel = __("Custom Field 1");
$customField = "custom_field";
?>
<div class="field <?= $customField ?> required">
<label class="label" for="<?= $customField ?>">
<span><?= $block->escapeHtml($customFieldLabel) ?></span>
</label>
<div class="control">
<input type="text" name="<?= $customField ?>" id="<?= $customField ?>" value=""
title="<?= $block->escapeHtmlAttr($customFieldLabel) ?>"
class="input-text" data-validate="required:true">
</div>
</div>
after added these files or code
run below commands :
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy
(for developer mode add -f to command)
php bin/magento cache:clear
For JS validation : In above phtml file (COMPANYCUSTOMMODULEviewfrontendtemplatesadditional.phtml
), if you need to add custom validation then use Magento Validation classes to data-validate attribute.
More help for JS validation follow this link
Note : COMPANYCUSTOMMODULE
is the custom module, if you need you can change with your custom module.
Hope this will help you.
add a comment |
Adding a custom field in customer registration page
first if need then create a custom module follow this link
then need to create a file COMPANYCUSTOMMODULESetupInstallData.php
to creating custom field
<?php
namespace COMPANYCUSTOMMODULESetup;
use MagentoCustomerModelCustomer;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements MagentoFrameworkSetupInstallDataInterface
private $eavSetupFactory;
private $eavConfig;
private $attributeResource;
/**
* InstallData constructor.
* @param MagentoEavSetupEavSetupFactory $eavSetupFactory
* @param MagentoEavModelConfig $eavConfig
* @param MagentoCustomerModelResourceModelAttribute $attributeResource
*/
public function __construct(
MagentoEavSetupEavSetupFactory $eavSetupFactory,
MagentoEavModelConfig $eavConfig,
MagentoCustomerModelResourceModelAttribute $attributeResource
)
$this->eavSetupFactory = $eavSetupFactory;
$this->eavConfig = $eavConfig;
$this->attributeResource = $attributeResource;
/**
* @param ModuleDataSetupInterface $setup
* @param ModuleContextInterface $context
* @throws MagentoFrameworkExceptionAlreadyExistsException
* @throws MagentoFrameworkExceptionLocalizedException
*/
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$customField = "custom_field";
$customFieldLabel = "Custom Field 1";
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->removeAttribute(Customer::ENTITY, $customField);
$attributeSetId = $eavSetup->getDefaultAttributeSetId(Customer::ENTITY);
$attributeGroupId = $eavSetup->getDefaultAttributeGroupId(Customer::ENTITY);
$eavSetup->addAttribute(Customer::ENTITY, $customField, [
// Attribute parameters
'type' => 'varchar',
'label' => $customFieldLabel,
'input' => 'text',
'required' => true,
'visible' => true,
'user_defined' => true,
'sort_order' => 990,
'position' => 990,
'system' => 0,
]);
$attribute = $this->eavConfig->getAttribute(Customer::ENTITY, $customField);
$attribute->setData('attribute_set_id', $attributeSetId);
$attribute->setData('attribute_group_id', $attributeGroupId);
/*
//You can use this attribute in the following forms
adminhtml_checkout
adminhtml_customer // for admin page under customer edit account info
adminhtml_customer_address
customer_account_create // for store-front registration page
customer_account_edit // for store-front after logged-in account edit page
customer_address_edit
customer_register_address
*/
$attribute->setData('used_in_forms', [
'adminhtml_customer',
'customer_account_create',
'customer_account_edit'
]);
$this->attributeResource->save($attribute);
wait it will help to just create on DB level and visible in admin-level,
Need to access same custom field in store-front
so create a layout file COMPANYCUSTOMMODULEviewfrontendlayoutcustomer_account_create.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="form.additional.info">
<block class="MagentoFrameworkViewElementTemplate" name="form_additional_info_customer"
template="COMPANY_CUSTOMMODULE::additional.phtml"/>
</referenceContainer>
</body>
</page>
and to display field in store-front in registration page,
create a phtml file COMPANYCUSTOMMODULEviewfrontendtemplatesadditional.phtml
<?php
$customFieldLabel = __("Custom Field 1");
$customField = "custom_field";
?>
<div class="field <?= $customField ?> required">
<label class="label" for="<?= $customField ?>">
<span><?= $block->escapeHtml($customFieldLabel) ?></span>
</label>
<div class="control">
<input type="text" name="<?= $customField ?>" id="<?= $customField ?>" value=""
title="<?= $block->escapeHtmlAttr($customFieldLabel) ?>"
class="input-text" data-validate="required:true">
</div>
</div>
after added these files or code
run below commands :
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy
(for developer mode add -f to command)
php bin/magento cache:clear
For JS validation : In above phtml file (COMPANYCUSTOMMODULEviewfrontendtemplatesadditional.phtml
), if you need to add custom validation then use Magento Validation classes to data-validate attribute.
More help for JS validation follow this link
Note : COMPANYCUSTOMMODULE
is the custom module, if you need you can change with your custom module.
Hope this will help you.
Adding a custom field in customer registration page
first if need then create a custom module follow this link
then need to create a file COMPANYCUSTOMMODULESetupInstallData.php
to creating custom field
<?php
namespace COMPANYCUSTOMMODULESetup;
use MagentoCustomerModelCustomer;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements MagentoFrameworkSetupInstallDataInterface
private $eavSetupFactory;
private $eavConfig;
private $attributeResource;
/**
* InstallData constructor.
* @param MagentoEavSetupEavSetupFactory $eavSetupFactory
* @param MagentoEavModelConfig $eavConfig
* @param MagentoCustomerModelResourceModelAttribute $attributeResource
*/
public function __construct(
MagentoEavSetupEavSetupFactory $eavSetupFactory,
MagentoEavModelConfig $eavConfig,
MagentoCustomerModelResourceModelAttribute $attributeResource
)
$this->eavSetupFactory = $eavSetupFactory;
$this->eavConfig = $eavConfig;
$this->attributeResource = $attributeResource;
/**
* @param ModuleDataSetupInterface $setup
* @param ModuleContextInterface $context
* @throws MagentoFrameworkExceptionAlreadyExistsException
* @throws MagentoFrameworkExceptionLocalizedException
*/
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$customField = "custom_field";
$customFieldLabel = "Custom Field 1";
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$eavSetup->removeAttribute(Customer::ENTITY, $customField);
$attributeSetId = $eavSetup->getDefaultAttributeSetId(Customer::ENTITY);
$attributeGroupId = $eavSetup->getDefaultAttributeGroupId(Customer::ENTITY);
$eavSetup->addAttribute(Customer::ENTITY, $customField, [
// Attribute parameters
'type' => 'varchar',
'label' => $customFieldLabel,
'input' => 'text',
'required' => true,
'visible' => true,
'user_defined' => true,
'sort_order' => 990,
'position' => 990,
'system' => 0,
]);
$attribute = $this->eavConfig->getAttribute(Customer::ENTITY, $customField);
$attribute->setData('attribute_set_id', $attributeSetId);
$attribute->setData('attribute_group_id', $attributeGroupId);
/*
//You can use this attribute in the following forms
adminhtml_checkout
adminhtml_customer // for admin page under customer edit account info
adminhtml_customer_address
customer_account_create // for store-front registration page
customer_account_edit // for store-front after logged-in account edit page
customer_address_edit
customer_register_address
*/
$attribute->setData('used_in_forms', [
'adminhtml_customer',
'customer_account_create',
'customer_account_edit'
]);
$this->attributeResource->save($attribute);
wait it will help to just create on DB level and visible in admin-level,
Need to access same custom field in store-front
so create a layout file COMPANYCUSTOMMODULEviewfrontendlayoutcustomer_account_create.xml
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="form.additional.info">
<block class="MagentoFrameworkViewElementTemplate" name="form_additional_info_customer"
template="COMPANY_CUSTOMMODULE::additional.phtml"/>
</referenceContainer>
</body>
</page>
and to display field in store-front in registration page,
create a phtml file COMPANYCUSTOMMODULEviewfrontendtemplatesadditional.phtml
<?php
$customFieldLabel = __("Custom Field 1");
$customField = "custom_field";
?>
<div class="field <?= $customField ?> required">
<label class="label" for="<?= $customField ?>">
<span><?= $block->escapeHtml($customFieldLabel) ?></span>
</label>
<div class="control">
<input type="text" name="<?= $customField ?>" id="<?= $customField ?>" value=""
title="<?= $block->escapeHtmlAttr($customFieldLabel) ?>"
class="input-text" data-validate="required:true">
</div>
</div>
after added these files or code
run below commands :
php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy
(for developer mode add -f to command)
php bin/magento cache:clear
For JS validation : In above phtml file (COMPANYCUSTOMMODULEviewfrontendtemplatesadditional.phtml
), if you need to add custom validation then use Magento Validation classes to data-validate attribute.
More help for JS validation follow this link
Note : COMPANYCUSTOMMODULE
is the custom module, if you need you can change with your custom module.
Hope this will help you.
answered Apr 25 at 12:18
Kanhaiya lalKanhaiya lal
910418
910418
add a comment |
add a comment |
Step 1 : Add your input field
<div class="field required">
<label for="username" class="label"><span><?php /* @escapeNotVerified */
echo __('Username') ?></span></label>
<div class="control">
<input type="text" name="username" id="username"
maxlength="50"
title="<?php /* @escapeNotVerified */
echo __('Username') ?>"
class="input-text"
data-validate="'maxlength':50, required:true, 'validateUsername':true">
</div>
</div>
Step 2: Add jQuery validation in the template.
<script>
requirejs([
'jquery',
'jquery/ui',
'jquery/validate',
'mage/translate',
'mage/mage',
], function ($)
$.validator.addMethod(
'validateUsername',
function (value)
return value.match(/^[a-zA-Z0-9-_@.]+$/);
,
$.mage.__('Enter a valid username. Valid characters are A-Z a-z 0-9 . _ - @.')
);
);
</script>
add a comment |
Step 1 : Add your input field
<div class="field required">
<label for="username" class="label"><span><?php /* @escapeNotVerified */
echo __('Username') ?></span></label>
<div class="control">
<input type="text" name="username" id="username"
maxlength="50"
title="<?php /* @escapeNotVerified */
echo __('Username') ?>"
class="input-text"
data-validate="'maxlength':50, required:true, 'validateUsername':true">
</div>
</div>
Step 2: Add jQuery validation in the template.
<script>
requirejs([
'jquery',
'jquery/ui',
'jquery/validate',
'mage/translate',
'mage/mage',
], function ($)
$.validator.addMethod(
'validateUsername',
function (value)
return value.match(/^[a-zA-Z0-9-_@.]+$/);
,
$.mage.__('Enter a valid username. Valid characters are A-Z a-z 0-9 . _ - @.')
);
);
</script>
add a comment |
Step 1 : Add your input field
<div class="field required">
<label for="username" class="label"><span><?php /* @escapeNotVerified */
echo __('Username') ?></span></label>
<div class="control">
<input type="text" name="username" id="username"
maxlength="50"
title="<?php /* @escapeNotVerified */
echo __('Username') ?>"
class="input-text"
data-validate="'maxlength':50, required:true, 'validateUsername':true">
</div>
</div>
Step 2: Add jQuery validation in the template.
<script>
requirejs([
'jquery',
'jquery/ui',
'jquery/validate',
'mage/translate',
'mage/mage',
], function ($)
$.validator.addMethod(
'validateUsername',
function (value)
return value.match(/^[a-zA-Z0-9-_@.]+$/);
,
$.mage.__('Enter a valid username. Valid characters are A-Z a-z 0-9 . _ - @.')
);
);
</script>
Step 1 : Add your input field
<div class="field required">
<label for="username" class="label"><span><?php /* @escapeNotVerified */
echo __('Username') ?></span></label>
<div class="control">
<input type="text" name="username" id="username"
maxlength="50"
title="<?php /* @escapeNotVerified */
echo __('Username') ?>"
class="input-text"
data-validate="'maxlength':50, required:true, 'validateUsername':true">
</div>
</div>
Step 2: Add jQuery validation in the template.
<script>
requirejs([
'jquery',
'jquery/ui',
'jquery/validate',
'mage/translate',
'mage/mage',
], function ($)
$.validator.addMethod(
'validateUsername',
function (value)
return value.match(/^[a-zA-Z0-9-_@.]+$/);
,
$.mage.__('Enter a valid username. Valid characters are A-Z a-z 0-9 . _ - @.')
);
);
</script>
answered Apr 25 at 7:05
Sudhanshu BajajSudhanshu Bajaj
556
556
add a comment |
add a comment |
Thanks for contributing an answer to Magento Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f272374%2fhow-to-add-custom-field-in-registration-form-and-add-jquery-validation-in-magent%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
please check the below given answers magento.stackexchange.com/a/272438/52244 if it match your expectation please mark as valid answer.so if someone else got some concern they can use this valid answer. more help will be appreciated.
– Kanhaiya lal
Apr 25 at 13:38