Могу ли я спрятать поле ввода входов номера HTML5?

Есть ли постоянный способ в браузерах скрыть новые спиновые окна, которые некоторые браузеры (например, Chrome) отображают для ввода HTML номера типа? Я ищу метод CSS или JavaScript, чтобы предотвратить появление стрелок вверх/вниз.

<input id="test" type="number">

Ответ 1

Этот CSS эффективно скрывает кнопку прокрутки для браузеров webkit (протестировал ее в Chrome 7.0.517.44 и Safari версии 5.0.2 (6533.18.5)):

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    /* display: none; <- Crashes Chrome on hover */
    -webkit-appearance: none;
    margin: 0; /* <-- Apparently some margin are still there even though it hidden */
}

input[type=number] {
    -moz-appearance:textfield; /* Firefox */
}
<input type="number" step="0.01" />

Ответ 2

В Firefox 29 в настоящее время добавлена поддержка числовых элементов, поэтому здесь приведен фрагмент для сокрытия счетчиков в браузерах на основе webkit и moz:

input[type='number'] {
    -moz-appearance:textfield;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
}
<input id="test" type="number">

Ответ 3

Короткий ответ:

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
input[type="number"] {
    -moz-appearance: textfield;
}
<input type="number" />

Ответ 5

Попробуйте вместо этого использовать input type="tel". Появляется клавиатура с цифрами, и на ней не отображаются спин-боксы. Он не требует JavaScript, CSS, плагинов или чего-либо еще.

Ответ 6

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
//Supports Mozilla
input[type=number] {
    -moz-appearance:textfield;
}

<input type="number"/>

Ответ 7

Только добавить этот CSS, чтобы удалить счетчик на вводе числа

/* For Firefox */

input[type='number'] {
    -moz-appearance:textfield;
}



/* Webkit browsers like Safari and Chrome */

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

Ответ 8

Я столкнулся с этой проблемой с input[type="datetime-local"], которая похожа на эту проблему.

И я нашел способ преодолеть такие проблемы.

Во-первых, вы должны включить функцию chrome shadow-root с помощью "DevTools → Настройки → Общие → Элементы → Показать тендер пользователя DOM"

Затем вы можете увидеть все скрытые элементы DOM, например, для <input type="number">, полный элемент с затененным DOM:

<input type="number">
  <div id="text-field-container" pseudo="-webkit-textfield-decoration-container">
    <div id="editing-view-port">
      <div id="inner-editor"></div>
    </div>
    <div pseudo="-webkit-inner-spin-button" id="spin"></div>
  </div>
</input>

Ответ 9

input[type=number]::-webkit-inner-spin-button, 
input[type=number]::-webkit-outer-spin-button {
     -webkit-appearance: none;
<input id="test" type="number">

Ответ 10

Не то, что вы просили, но я делаю это из-за фокуса в WebKit со спинбоксами:

// temporary fix for focus bug with webkit input type=number ui
if (navigator.userAgent.indexOf("AppleWebKit") > -1 && navigator.userAgent.indexOf("Mobile") == -1)
{
    var els = document.querySelectorAll("input[type=number]");
    for (var el in els)
        el.type = "text";
}

Это может дать вам идею помочь с тем, что вам нужно.

Ответ 11

Это лучший ответ, который я хотел бы предложить на мыши и без мыши над

input[type='number'] {
  appearance: textfield;
}
input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button,
input[type='number']:hover::-webkit-inner-spin-button, 
input[type='number']:hover::-webkit-outer-spin-button {
-webkit-appearance: none; 
 margin: 0; }

Ответ 12

В Firefox для Ubuntu, просто используя

    input[type='number'] {
    -moz-appearance:textfield;
}

сделал трюк для меня.

Добавление

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
}

Приведет меня к

Неизвестный псевдокласс или псевдоэлемент '-webkit-external-spin-button. Правила отключены из-за плохого выбора.

каждый раз, когда я пытался. То же самое для кнопки внутреннего вращения.

Ответ 13

Чтобы сделать эту работу в Safari, я обнаружил, что добавление! важно для настройки webkit, заставляет кнопку со стрелкой скрываться.

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    /* display: none; <- Crashes Chrome on hover */
    -webkit-appearance: none !important;
    margin: 0; /* <-- Apparently some margin are still there even though it hidden */
}

У меня все еще есть проблемы с разработкой решения для Opera.

Ответ 14

Возможно, измените введенный номер с помощью javascript на ввод текста, когда вы не хотите, чтобы спрятать;

document.getElementById('myinput').type = 'text';

и остановить пользователя, вводящего текст;

  document.getElementById('myinput').onkeydown = function(e) {
  if(!((e.keyCode > 95 && e.keyCode < 106)
    || (e.keyCode > 47 && e.keyCode < 58) 
    || e.keyCode == 8
    || e.keyCode == 9)) {
          return false;
      }
  }

тогда javascript изменит его обратно, если вы хотите использовать счетчик;

document.getElementById('myinput').type = 'number';

он хорошо работал для моих целей

Ответ 15

Вы можете использовать этот простой код в вашем файле CSS:

input[type="number"] {
-moz-appearance: textfield;
}

Ответ 16

Вы используете материал, который спецификация не является окончательной, поэтому я бы сказал, что нет, будет вполне согласованный, кросс-браузерный способ исправления этого.

просто используйте тип ввода = "текст" и используйте форму проверки javascript, чтобы убедиться, что это число.