@@ -12,21 +12,12 @@ define([
1212 'use strict' ;
1313
1414 return function ( config , element ) {
15+
1516 var $element = $ ( element ) ,
1617 initialValue = $element . val ( ) ,
1718 duoProviderValue = config . duoProviderValue ,
1819 duoFields = config . duoFields ;
1920
20- $element . on ( 'change' , function ( ) {
21- var selectedValues = $element . val ( ) || [ ] ;
22-
23- if ( selectedValues . includes ( duoProviderValue ) ) {
24- addRequiredAttributes ( duoFields ) ;
25- } else {
26- removeRequiredAttributes ( duoFields ) ;
27- }
28- } ) ;
29-
3021 /**
3122 * Adds the "required" attribute to each Duo field
3223 *
@@ -35,6 +26,7 @@ define([
3526 function addRequiredAttributes ( fields ) {
3627 fields . forEach ( function ( fieldId ) {
3728 var $field = $ ( '#' + fieldId ) ;
29+
3830 if ( $field . length ) {
3931 $field . attr ( 'required' , 'required' ) ;
4032 $field . addClass ( 'required-entry' ) ;
@@ -50,13 +42,24 @@ define([
5042 function removeRequiredAttributes ( fields ) {
5143 fields . forEach ( function ( fieldId ) {
5244 var $field = $ ( '#' + fieldId ) ;
45+
5346 if ( $field . length ) {
5447 $field . removeAttr ( 'required' ) ;
5548 $field . removeClass ( 'required-entry' ) ;
5649 }
5750 } ) ;
5851 }
5952
53+ $element . on ( 'change' , function ( ) {
54+ var selectedValues = $element . val ( ) || [ ] ;
55+
56+ if ( selectedValues . includes ( duoProviderValue ) ) {
57+ addRequiredAttributes ( duoFields ) ;
58+ } else {
59+ removeRequiredAttributes ( duoFields ) ;
60+ }
61+ } ) ;
62+
6063 element . on ( 'blur' , function ( ) {
6164 var currentValue = $element . val ( ) ;
6265
0 commit comments