|
1972 | 1972 | modalBodyForm |
1973 | 1973 | ); |
1974 | 1974 |
|
1975 | | - if (!modalBodyForm.checkValidity() || validErrors.length > 0) { |
| 1975 | + // "дополнительная" проверка на наличие "invalid-feedback" у контактных инпутов (т.к. всё не просто с 'was-validated') |
| 1976 | + const hasInvalidFeedback = Array.from( |
| 1977 | + modalBodyForm.querySelectorAll('.modal__body-add-contact-input') |
| 1978 | + ).some((input) => { |
| 1979 | + const feedback = |
| 1980 | + input.parentElement.querySelector('.invalid-feedback'); |
| 1981 | + return feedback && feedback.textContent.trim() !== ''; |
| 1982 | + }); |
| 1983 | + |
| 1984 | + if ( |
| 1985 | + !modalBodyForm.checkValidity() || |
| 1986 | + validErrors.length > 0 || |
| 1987 | + hasInvalidFeedback |
| 1988 | + ) { |
1976 | 1989 | event.stopPropagation(); |
1977 | | - modalBodyForm.classList.add('was-validated'); |
1978 | 1990 | } else { |
1979 | | - // вывод сообщения об успешном добавлении клиента (после перерисовки таблицы) |
| 1991 | + modalBodyForm.classList.add('was-validated'); // если всё "ок", т.е. нет ошибок, невалидных сообщений.. добавление всей форме валидационного класса (для/по Bootstrap) |
| 1992 | + |
1980 | 1993 | setTimeout(() => { |
1981 | | - alert('Клиент успешно добавлен!'); |
1982 | | - // movingToLastNewTableRow(); // выделение/показ только что добавленного клиента/строки |
| 1994 | + alert('Клиент успешно добавлен!'); // вывод сообщения об успешном добавлении клиента |
| 1995 | + |
| 1996 | + // очистка всех полей формы (удаление классов/сообщений ошибок) |
| 1997 | + allModalInputs.forEach((input) => { |
| 1998 | + input.value = ''; |
| 1999 | + input.classList.remove('is-invalid'); |
| 2000 | + }); |
| 2001 | + modalBodyForm.classList.remove('was-validated'); // удаление класса "was-validated" |
| 2002 | + |
| 2003 | + // закрытие модального окна (через/посредствам Bootstrap API) |
| 2004 | + const bootstrapModal = bootstrap.Modal.getInstance( |
| 2005 | + modalBodyForm.closest('.modal') |
| 2006 | + ); |
| 2007 | + if (bootstrapModal) { |
| 2008 | + bootstrapModal.hide(); |
| 2009 | + } |
| 2010 | + |
| 2011 | + // и напоследок.. выделение/показ только что добавленного клиента/строки |
| 2012 | + setTimeout(() => { |
| 2013 | + // movingToLastNewTableRow(); |
| 2014 | + }, 300); // временная задержка, больше.. чтобы модальное окно успело закрыться |
1983 | 2015 | }, 200); |
1984 | 2016 | } |
1985 | 2017 | }, |
|
0 commit comments