Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.01.2021, 13:55
Кандидат Javascript-наук
Отправить личное сообщение для fori Посмотреть профиль Найти все сообщения от fori
 
Регистрация: 27.01.2021
Сообщений: 117

Здапретить ввод e - + в input type="number"
Здравствуйте, к сожалению я столкнулся с необходимостю запрета ввода знаков +,-,е в input type="number"
Пример рабочего кода
<input type="number" onkeydown="return event.keyCode !== 187 && event.keyCode !== 189 && event.keyCode !== 69">

Как можно задать ето-же с помошю функции, тоесть (не рабочий код)
<input type="number" onkeydown="typ">
<script>
function typ(event){
    return event.keyCode !== 187 && event.keyCode !== 189 && event.keyCode !== 69
}
</script>


Или есть более правильны методы решения проблемы))?

Последний раз редактировалось fori, 29.01.2021 в 14:04.
Ответить с цитированием
  #2 (permalink)  
Старый 29.01.2021, 14:09
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

onkeydown="typ(event)"

или
addEventListener('keydown', event => {
  if(event.target.type === 'number' && [187, 189,69].includes(event.keyCode))
    event.preventDefault();
}, true)
__________________
29375, 35

Последний раз редактировалось Aetae, 29.01.2021 в 14:13.
Ответить с цитированием
  #3 (permalink)  
Старый 29.01.2021, 14:11
Кандидат Javascript-наук
Отправить личное сообщение для fori Посмотреть профиль Найти все сообщения от fori
 
Регистрация: 27.01.2021
Сообщений: 117

К сожалению ето не работает((
<input type="number" onkeydown="typ(event)">
<script>
function typ(event){
    return event.keyCode !== 187 && event.keyCode !== 189 && event.keyCode !== 69;
}
</script>

-+е всеравно пишется в input
Ответить с цитированием
  #4 (permalink)  
Старый 29.01.2021, 14:39
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

Ну да.
onkeydown="return typ(event)"
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 29.01.2021, 14:55
Кандидат Javascript-наук
Отправить личное сообщение для fori Посмотреть профиль Найти все сообщения от fori
 
Регистрация: 27.01.2021
Сообщений: 117

Спасибо большое, код на js работает
<input type="number" onkeydown="return typ(event)">
<script>
function typ(event){
    return event.keyCode !== 187 && event.keyCode !== 189 && event.keyCode !== 69;
}
</script>

Могу ли я спросить как можно сделать такую функцыю для vue.js
К примеру код vue.js ниже не работает((
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="vue">
<input type="number" @keydown="return tonum(event)">
</div>
<script>
	var vue = new Vue({
  el: '#vue',
  data: {
  },
  methods: {
    tonum() {
     return event.keyCode !== 187 && event.keyCode !== 189 && event.keyCode !== 69;
    }
  }
})
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 29.01.2021, 16:02
Кандидат Javascript-наук
Отправить личное сообщение для fori Посмотреть профиль Найти все сообщения от fori
 
Регистрация: 27.01.2021
Сообщений: 117

Спасибо, все получилось при использовании директив
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="vue">
  <input type="number" v-num="true" @keydown="return tonum(event)">
</div>
<script>
	
Vue.directive('num', function (el) {
addEventListener('keydown', event => {
  if(event.target.type === 'number' && [187, 189,69].includes(event.keyCode))
    event.preventDefault();
}, true)	
})
	var vue = new Vue({
  el: '#vue',
  methods: {
   tonum() {
		alert("working");
    }
  }
})
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 29.01.2021, 16:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

fori,
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<div id="vue">
<input type="number" @keydown="tonum">
</div>
<script>
    var vue = new Vue({
  el: '#vue',
  data: {
  },
  methods: {
    tonum(event) {
     if([187, 189,69].includes(event.keyCode))  event.preventDefault();
    }
  }
})
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод в input с кнопки Artur_Hopf Общие вопросы Javascript 14 05.04.2018 15:37
Ввод и сортировка массива Neotwalker Элементы интерфейса 2 05.04.2018 00:14
Как запретить ввод текста в input snizhok Элементы интерфейса 41 07.11.2016 13:11
Ввод только на одном языке Sobsoft Events/DOM/Window 2 05.09.2016 14:35
Ввод числа с запятой справа налево tzarek Элементы интерфейса 2 24.09.2013 16:51