Javascript 比较键控功能的窗体输入和范围值

Javascript 比较键控功能的窗体输入和范围值,javascript,html,Javascript,Html,我有一个表单,其中列出了产品的剩余数量,在它下面有一个输入字段,可以让您在表单中输入数量以提交购买 我将剩余数量包装在带有ID的跨度中。 在keyup上,我想将span的值与输入到字段中的输入进行比较 如果输入大于span中的值,则在键控时,我希望将输入值更改为0或span ID值的等效值 下面是我的javascript,我正试图使用它来实现这一点: <script> $(document).ready(function () { document.getElementById

我有一个表单,其中列出了产品的剩余数量,在它下面有一个输入字段,可以让您在表单中输入数量以提交购买

我将剩余数量包装在带有ID的跨度中。 在keyup上,我想将span的值与输入到字段中的输入进行比较

如果输入大于span中的值,则在键控时,我希望将输入值更改为0或span ID值的等效值

下面是我的javascript,我正试图使用它来实现这一点:

<script>
$(document).ready(function () {
   document.getElementById('one_and_done_stool_QTY_check').keyup(Qty_check);

    function Qty_check(){
        var QTY1check = document.getElementById('one_and_done_stool_QTY_check').value;
        var QTY1remain = document.getElementById('one_and_done_stool_QTY_remain').innerHTML;

        if (QTY1check.value > QTY1remain.innerHTML)
            alert("NOPE");
            {document.getElementById("one_and_done_stool_QTY_check").value = 0;}
    };}
</script>

$(文档).ready(函数(){
document.getElementById('one_and_done_stool_QTY_check').keyup(QTY_check);
功能数量检查(){
var QTY1check=document.getElementById('one_and_done_stool_QTY_check')。值;
var qty1remaine=document.getElementById('one_和_done_stool_QTY_remaine')。innerHTML;
if(QTY1check.value>qty1remaine.innerHTML)
警报(“NOPE”);
{document.getElementById(“一个和一个完成的检查”).value=0;}
};}
以下是html:

<span id="one_and_done_stool_QTY_remain">2</span>
<input id="one_and_done_stool_QTY_check" type="text" name="one_and_done_stool">
2

您的主要问题是:

document.getElementById('one_and_done_stool_QTY_check').keyup(Qty_check);
您可以重写:

document.getElementById('one_and_done_stool_QTY_check').onkeyup = Qty_check;
或者您可以直接使用:

或者jQuery方式:

$('#one_and_done_stool_QTY_check').on('input', Qty_check);
片段:

document.getElementById('one'u and'u done'u'u stool'u QTY'u check')。addEventListener('input',QTY'u check);
功能数量检查(e){
var QTY1check=+document.getElementById('one_and_done_stool_QTY_check')。值;
var qty1remaine=+document.getElementById('one_和_done_stool_QTY_remaine')。textContent;
如果(QTY1检查>QTY1保持){
控制台日志(“NOPE”);
document.getElementById(“一次检查和一次检查完成了检查数量检查”)。值=0;
}
}

2.

值类型可能已关闭?看起来您需要输入数值,而类型实际上是字符串。请尝试使用数字,此处:if(Number(QTY1check.value)>Number(qty1remaine.innerHTML))
$('#one_and_done_stool_QTY_check').on('input', Qty_check);