Ну всегда можно по onload (или ready) вешать нужный класс например (а там уже ::after и по onclick снимать класс) или через append или схожие методы вставлять с помощью jquery нужный html - варианты на js есть. И для этого не нужно ничего править в ядре. Все это динамически происходит при должном подходе. js - это же мир магии 🧙
Да но если использовать js в конце всей формы. Например append html, то либо это будет работать хорошо только для первой что мне не подходит, либо придется писать для каждой кнопки свое действие onclick по классу что тоже не очень. Можно конечно это сделать одной функцией но все рано необходимо знать все классы заранее. Можно ли как то это сделать без костылей? Или вы предлагаете что то другое?
Уточню основная кнопка Выберите файл должна быть скрыта а вместо нее была иконка которая выполняет все функций этой кнопки
Мне не нужно прям супер универсальное средство. Я просто не хочу делать костыль и писать для каждого отдельного метополя свою функцию
<div id="form-field-faile1" class="rcl-form-field field-file"> <label>faile1</label> <div id="rcl-field-faile1" class="rcl-field-input type-file-input"> <div class="rcl-field-core"> <span id="faile1-content" class="file-field-upload"> <input data-size="100" data-ext="" type="file" name="faile1" class="file-field" id="faile1" value=""/> (<span class="allowed-types">Разрешенные типы файлов: </span>. Макс. размер: 100MB) <script type="text/javascript">rcl_init_field_file("faile1");</script> </span></div></div></div> <div id="form-field-faile2" class="rcl-form-field field-file"> <label>video panorama </label> <div id="rcl-field-faile2" class="rcl-field-input type-file-input"> <div class="rcl-field-core"><span id="faile2-content" class="file-field-upload"> <input data-size="100" data-ext="" type="file" name="faile2" class="file-field" id="faile2" value=""/> (<span class="allowed-types">Разрешенные типы файлов: </span>. Макс. размер: 100MB) <script type="text/javascript">rcl_init_field_file("faile2");</script></span></div></div></div> <script> $( "#faile1" ).append( "<label for='faile1'>icon1</label>" ); $( "#faile2" ).append( "<label for='faile2'>icon1</label>" ); </script>
А например как то так
var sum = $( "input[type='file']" ).length; for (var i = 0; i < sum; i++) { $( "#faile"+i ).append( "<label for='faile1"+i+"'>icon"+i+"</label>" ); }
Но более правильнее. без привязки к имени faile
zeni1agent сказал(а)
Я не совсем понимаю какой скрипт вы от меня хотите
я от вас ничего не хочу, а просил скрин формы.
Дал вам варианты по которым вы можете начать работать. Беседа зашла в тупик. Лично я вам больше ничем не могу помочь, но тема открыта - может кто, что-то еще напишет.
Значит вы не знаете как знаете как заменить кнопку file на иконку.
Я просто надеялся что есть какой нибудь хук wp-recall что бы в цикл вывода полей добавить свою иконку
Ну или получить по отдельности каждый id и вернуть его
var sum = $( ".file-field" ).length; for (var i = 0; i < sum; i++) { var id = $( ".file-field :eq("+i+")" ).attr("id"); $(".file-field :eq("+i+")").append( "<label for='"+id+"'>icon"+i+"</label>" ); }
правда я не знаю насколько правильно это будет работать