Моя HTML-форма работает отлично, а javascript работает отлично ... Единственная проблема в том, что я, очевидно, не хочу повторять код 15 раз, поэтому мне нужно, чтобы идентификаторы были извлечены в переменные.
Простопытаясь получить три идентификатора из любой формы, представленной на обмен.my_btn_id, my_img_id, my_input_id.Вот и все.Я пробовал тысячи возможных вариантов синтаксиса, искал здесь сотни ответов, и ничто не помогло так, как мне нужно.Я явно что-то упускаю.Любая помощь приветствуется.
Вот упрощенная HTML-форма:
<form action="#” method=" post " id=”my_form_id”>
<input type="file " id="my_input_id "><br>
<button type="submit " value="Upload " id="my_btn_id ">Upload</button>
</form>
Вот javascript - идентификаторы, которые я ищу, выделены **
$(document).on('change', '.btn-file :file', function () {
var input = $(this),
label = input.val().replace(/\\/g, '/').replace(/.*\//, '');
input.trigger('fileselect', [label]);
});
$('.btn-file :file').on('fileselect', function (event, label) {
var input = $(this).parents('.input-group').find(':text'),
log = label;
if (input.length) {
input.val(log);
} else {
if (log) alert(log);
}
});
function readURL(input) {
**var imgid = "#my_img_id";**
**var btnid = "#my_btn_id";**
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$(imgid).attr('src', e.target.result);
$(btnid).show();
}
reader.readAsDataURL(input.files[0]);
}
}
**var inputid = "#my_input_id";**
$(inputid).change(function () {
readURL(this);
});