#javascript #jquery
#javascript #jquery
Вопрос:
У меня есть этот код ниже, он работает, как ожидалось, но мне нужно передать идентификатор каждого из них для работы. Как я могу превратить это в функцию для использования onKeyPress
события:
document.getElementById('inp').addEventListener('input', e => {
const val = e.target.value.replace(/D/g, '').replace(/^0*/, '').padStart(3, '0')
e.target.value = val.slice(0, -2).replace(/(d)(?=(d{3}) (?!d))/g, '$1.') ',' val.slice(-2)
})
Я хотел бы перейти к использованию в качестве: function Mask(){ // code }
<input asp-for="Frete" name="Frete" onKeyPress="return(Mask(this,'.',',',event))" class="form-control" />
Чтобы иметь возможность использовать function
, поэтому мне нужно было бы создавать один за другим с помощью id
Комментарии:
1. Чего ты не понимаешь?
2. Что вы имеете в виду под «каждым»? Селектор идентификаторов будет соответствовать не более чем одному элементу
3. Таким образом, мне нужно передать идентификатор входных данных, и я создал функцию, которая уже передается во все формы, которые мне нужны. Я отредактирую вопрос.
4. @zer00ne Функция JavaScript определяется с помощью ключевого слова function, за которым следует имя, за которым следуют круглые скобки (). Имена функций могут содержать буквы, цифры, подчеркивания и знаки доллара (по тем же правилам, что и переменные). В круглых скобках могут содержаться имена параметров, разделенные запятыми: (параметр1, параметр2, …) Код, который будет выполняться функцией, помещается внутри фигурных скобок: {}
5. @Raymond В JS также есть функция arrow, которая используется в примере OP.
Ответ №1:
Здесь вы могли бы использовать event
объект, подобный :
document.getElementById('inp1').addEventListener('input', (e) => { Mask(e, 'inp1'); });
document.getElementById('inp2').addEventListener('input', (e) => { Mask(e, 'inp2'); });
document.getElementById('inp3').addEventListener('input', (e) => { Mask(e, 'inp3'); });
function Mask(e, id) {
const target = document.getElementById(id);
const val = target.value.replace(/D/g, '').replace(/^0*/, '').padStart(3, '0');
target.value = val.slice(0, -2).replace(/(d)(?=(d{3}) (?!d))/g, '$1.') ',' val.slice(-2);
}
<input id="inp1">
<input id="inp2">
<input id="inp3">
Комментарии:
1. Ошибка: не удается прочитать ‘значение’ свойства null в Mask (Clientes.js:1001) в HTMLInputElement.onkeypress