Попробуйте это:
document.querySelectorAll('select,input:not([type="hidden"]):not(#input_up_img_perfil):not(#sub_img_perfil),textarea');
Это должно работать довольно хорошо;)
Это на самом деле довольно просто: во-первых, вам нужно добавить скобки к оператору :not
.Затем вам нужно подумать о правильном CSS-запросе, чтобы выбрать то, что вам нужно.
Пример, который будет не работать:
'input:not([type="hidden"]),input:not(#input_up_img_perfil),input:not(#sub_img_perfil)'
, потому что у вас фактически три запросаи результат будет объединен в конце, так как input:not(#input_up_img_perfil)
не имеет ограничений для скрытых полей, вы получите их в результате, даже если вы установите input:not([type="hidden"])
.
Вот почему вам нужно сделатьследующее:
'input:not([type="hidden"]):not(#input_up_img_perfil):not(#sub_img_perfil)'
Здесь у вас есть только один запрос к входному тегу с тремя ограничениями!
Надеюсь, это понятно;)