Formyoula Guides 📖
Formyoula Guides 📖
/
Disable Fields On Newly Added Repeat Group Entries

Disable Fields On Newly Added Repeat Group Entries

In this guide, we will share an example on how to disable all fields on a newly added repeat group entry.

image
// Listen to all form field initialize events
window.formyoula.form_entry.on( 'form:field:initialize', function( options ) {
  // Update field
  update_field_attributes( options.view.model );
} );
// Function to update specific field attributes
function update_field_attributes( field ) {
  // Check if field is inside repeat group
  if ( field.get( 'attributes' ).repeat_entry_id ) {
    // Add the new field attributes we want to change
    var custom_html_attributes = [ 
      {
        attribute: 'disabled',
        type: 'input',
        value: 'disabled'
      }
    ];
    // Update the field with new attributes
    field.get( 'attributes' ).options = custom_html_attributes;
    // Update target field to read-only
    field.get( 'attributes' ).readonly = 'yes';
  }
} // END update_field_attributes

We can also specify a list of fields we would like to disable instead of disabling all fields.

// Repeat Group fields to disable after repeat entry is added
var repeat_fields_to_disable = 'a812-9456-3264,9da3-bdd8-dd35';
// Listen to all form field initialize events
window.formyoula.form_entry.on( 'form:field:initialize', function( options ) {
  // Update field
  disable_repeat_entry_field( options.view.model );
} );
// Function to update specific field attributes
function disable_repeat_entry_field( field ) {
  // Check if field is inside repeat group and is a field we want to disable
  if ( field.get( 'attributes' ).repeat_entry_id && repeat_fields_to_disable.includes( field.get( 'component_id' ) ) ) {
    // Update the field with new attributes
    field.get( 'attributes' ).options = [ {
      type: 'input',
      attribute: 'disabled',
      value: 'true'
    } ];
  }
} // END disable_repeat_entry_field

For any questions, please contact us - [email protected] or the Formyoula in-app chat 🙂