Как поместить Math.round в функцию и ограничить ввод пользователя int?

#javascript #html

#javascript #HTML

Вопрос:

это код:

 <script>
function doAll(x) {

}
</script>

<input type="number" oninput="this.value = Math.round(this.value);doAll(this.value);">
  

Я хотел бы поместить код:

 this.value = Math.round(this.value);
  

в функцию. так что это будет:

 <input type="number" oninput="doAll(this.value);">
  

что я сделал:

 <script>
function doAll(x) {
    x = Math.round(x);
}
</script>

<input type="number" oninput="doAll(this.value);">
  

вычисление функции работает. но после этого ввод пользователя больше не ограничен int.
как я могу решить проблему?

Ответ №1:

Вы this.value больше не устанавливаете, вы устанавливаете скопированное значение ( x ) . Попробуйте следующее:

 function doAll(e) {
    x = Math.round(e.value);
    e.value = x;
}  
 <input type="number" oninput="doAll(this);">  

Комментарии:

1. хорошая идея, мне нужно установить значение. но this.value = x; не работает.

2. Мой плохой, я обновил ответ для полностью рабочего образца.

3. Я только что попробовал установить id и использовать jquery. но ваш лучше. спасибо. 🙂