I am altering a paragraphs form to add a validation function to the "Add More" button using this code: [This button add widgets for multiple value fields]
function mymodule_field_widget_paragraphs_form_alter(&$element, FormStateInterface &$form_state, $context) {
if ($element['#paragraph_type']=='my_parag'){
if (isset($element['subform']['my_parag_field']['widget']['add_more']['add_more_button_my_parag'])) {
//Here is the code that adds the validate function
$element['subform']['my_parag_field']['widget']['add_more']['add_more_button_my_parag']['#validate'] = ['validate_add_more_button'];
}
}
}
This handmade validation function is called but I couldn't stop the submit function to be called with $form_state->setError
function validate_add_more_button(array $form, FormStateInterface $form_state){
//This line has no effect... a new widget is added
$form_state->setError($form, t("error"));
}