@@ -457,6 +457,36 @@ function setDhcpFieldsDisabled() {
457457 $ ( '#txtmetric' ) . prop ( 'disabled' , true ) ;
458458}
459459
460+ document . addEventListener ( 'DOMContentLoaded' , function ( ) {
461+ const dhcpCheckbox = document . getElementById ( 'dhcp-iface' ) ;
462+ const rangeStart = document . getElementById ( 'txtrangestart' ) ;
463+ const rangeEnd = document . getElementById ( 'txtrangeend' ) ;
464+ const leaseTime = document . getElementById ( 'txtrangeleasetime' ) ;
465+
466+ function updateRequiredFields ( ) {
467+ const isChecked = dhcpCheckbox . checked === true ;
468+
469+ if ( isChecked ) {
470+ rangeStart . setAttribute ( 'required' , 'required' ) ;
471+ rangeEnd . setAttribute ( 'required' , 'required' ) ;
472+ leaseTime . setAttribute ( 'required' , 'required' ) ;
473+ } else {
474+ rangeStart . removeAttribute ( 'required' ) ;
475+ rangeEnd . removeAttribute ( 'required' ) ;
476+ leaseTime . removeAttribute ( 'required' ) ;
477+
478+ rangeStart . classList . remove ( 'is-invalid' , 'is-valid' ) ;
479+ rangeEnd . classList . remove ( 'is-invalid' , 'is-valid' ) ;
480+ leaseTime . classList . remove ( 'is-invalid' , 'is-valid' ) ;
481+ }
482+ }
483+
484+ // set initial state
485+ updateRequiredFields ( ) ;
486+ setTimeout ( updateRequiredFields , 100 ) ;
487+ dhcpCheckbox . addEventListener ( 'change' , updateRequiredFields ) ;
488+ } ) ;
489+
460490// Static Array method
461491Array . range = ( start , end ) => Array . from ( { length : ( end - start ) } , ( v , k ) => k + start ) ;
462492
0 commit comments