如何使输入类型编号不可编辑但仍然有效?

How to make input type number un-editable but still functioning?

<input readonly='readonly' id ='testid' name='testname' type='number' min ='1'>

我试过这个但没有用。有什么办法吗?比如使用 css 或 javascript.

我的 jsfiddle。

http://jsfiddle.net/jmasejo/vta96mp1/

这来自 Disable writing in input type number HTML5,但需要 jQuery。

$("[type='number']").keypress(function (evt) {
    evt.preventDefault();
});

没有jQuery代码是:(输入是一个输入字段)

input.onkeypress=function(evt){
    evt.preventDefault();
};

你好,我有一个工作代码,但我认为这不是最好的方法。我合并了

的答案

How to disable backspace if anything other than input field is focused on using jquery

和 TuomasK 的回答

这是工作代码。

http://jsfiddle.net/vta96mp1/1/

HTML

<input class='testInput' id ='testid' value = '1' name='testname' type='number' min ='1'>

JS

$("#testid").keypress(function (evt) {
evt.preventDefault();
});

$(document).keydown(function(e) {
    var elid = $(document.activeElement).hasClass('textInput');
   console.log(e.keyCode + ' && ' + elid);
    //prevent both backspace and delete keys
    if ((e.keyCode === 8 || e.keyCode === 46) && !elid) {
        return false;
    };
});

试试这个。这个对我有用。

$("#testid").keypress(function (e) {
    e.preventDefault();
}).keydown(function(e){
    if ( e.keyCode === 8 || e.keyCode === 46 ) {
        return false;
    }
});

<!DOCTYPE html>
<html>

<body>
  <p>A function is triggered when the user is pressing a key in the input field.</p>

  <input type="text" id="demo0">
  <input type="text" id="demo1">
  <input type="text" id="demo2" onkeypress="myFunction2()">


  <script language="javascript" type="text/javascript">
    document.getElementById("demo0").onkeypress = function() {
      myFunction0()
    };
    document.getElementById("demo1").addEventListener("keypress", myFunction1);

    function myFunction0() {
      document.getElementById("demo0").style.backgroundColor = "yellow";
    }

    function myFunction1() {
      document.getElementById("demo1").style.backgroundColor = "green";
    }

    function myFunction2() {
      document.getElementById("demo2").style.backgroundColor = "red";
    }
  </script>
</body>

</html>

<!DOCTYPE html>
<html>

<body>
  <h1>No text & number</h1>
  <div>
    <input id="ESP" type="number" name="ESP" onKeypress="event.preventDefault();">
  </div>
</body>

</html>