文本输入仅允许容器

时间:2015-06-29 13:23:10

标签: javascript input onkeypress

所以我已经在javascript中输入了我无法弄清楚如何只使用数字输入,我尝试使用数字类型,只有当我用字母加注时才能工作,但是当我从数字开始然后添加字母时,那么它将字母留在inputfield中,因此输入的容器是:

var td = document.createElement("td");
    var input = document.createElement("input");
    input.type = "number";
    input.name = "//retseptid/retsept[" + count + "]/doos";
    input.id = "prescription_" + count + "_dosage";
    input.value = UTF8Decode(prescription.doos);
    input.className = "txt_left";
    input.style.width = "52px";
    if(prescriptionContainerIsDisabled) {
        input.disabled = true;
    }
    else {
        addChangeListener(input);
    }
    td.appendChild(input);

    td.appendChild(document.createTextNode(" "));

我想,我不能使用onkeypress 这是结果,而且必须只允许输入数字的字段 enter image description here

2 个答案:

答案 0 :(得分:1)

您可以创建一个功能来检查它是否为数字并在输入的onkeypress事件中调用该功能:

function isNumber(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57))
    {
        window.alert("Your entry must be numeric!");
        return false;
    }
    return true;
}

尝试此操作来定义您的onkeyup事件。请注意没有"

input.onkeyup = function(evt) {return isNumber(evt);};

答案 1 :(得分:0)

所以对我来说最重要的是功能:

Job

我打电话给它:

function isNumber()
{
      this.value = this.value.replace(/,/g, '.');
      this.value = this.value.replace(/^\./, "0.");
      this.value = this.value.replace(/[^0-9\.]/g, '');
      var match = this.value.match(/\d*\.\d*/);
      if (match)
         this.value = match[0];
}