简体   繁体   English

响应用户输入的JavaScript函数

[英]JavaScript function that responds to user input

I am trying to write a javascript/angular js function to achieve the following: when a user enters a number, it will tell them if the number is too high or low (> 100 is too high) 我正在尝试编写一个javascript / angular js函数来实现以下目的:当用户输入数字时,它将告诉他们数字是否太高或太低(> 100太高)

here is my html code: 这是我的html代码:

<div>
    <p id="num">Number : <input type="number"> </p>
    <p id="demo" onkeyup="numberToHigh()"> </p>
</div>

here is my js code: 这是我的js代码:

function numberToHigh(){
var number = document.getElementById('num');
var message = document.getElementById('demo');
if (number > 100) {
    message.innerHTML = "number too high";
}else{
    message.innerHTML = "number ok";
}

}

});

I can't figure out why nothing is happening when i enter a value into the text area. 当我在文本区域中输入值时,我不知道为什么什么也没发生。

您应该将事件侦听器附加到input元素,而不是p元素。

var num is selecting the wrong element (it should be the input ). var num选择了错误的元素(应为input )。 You also need the value of this element rather that the element itself. 您还需要此元素的value ,而不是元素本身。 You are also binding the keyup event to the wrong element (this should also be the input )... 您还将keyup事件绑定到错误的元素(这也应该是input )...

 function numberToHigh(){ var number = document.getElementById('num').value; var message = document.getElementById('demo'); console.log(number) if (number > 100) { message.innerHTML = "number too high"; }else{ message.innerHTML = "number ok"; } } 
 <div> <p>Number : <input id="num" type="number" onchange="numberToHigh()" onkeyup="numberToHigh()"> </p> <p id="demo"> </p> </div> 

EDIT 编辑

You may want to also call your function when the onchange event fires to capture the +/- button clicks of the number input 您可能还希望在onchange事件触发时调用函数以捕获数字输入的+/-按钮单击

尝试这个

<input type="number" id="num" onkeyup="numberToHigh()">

You made many mistakes. 你犯了很多错误。 I tried to correct them. 我试图纠正它们。 You can use these : 您可以使用这些:

<div>
    <p id="num">Number : <input id="numValue" type="number" /> </p>
    <p id="demo"> </p>
</div>



$("#numValue").keyup(function() {
    var number = document.getElementById('numValue').value;
    var message = document.getElementById('demo');
    if (number > 100) {
        message.innerHTML = "number too high";
    }else{
        message.innerHTML = "number ok";
    }
});

You can implement function on ng-change of input, this is pure angular code 您可以在输入的ng-change上实现功能,这是纯角度代码

     <div>
        <p id="num">Number : <input type="number" ng-model="number" ng-change="numberToHigh()"> </p>
/div>

Your controller looks like 您的控制器看起来像

   $scope.numberToHigh = function (){
      if ($scope.number > 100) {
             // do your work    
        }
       else{
        // do your work
        }    
      }

You are selecting wrong element value in JS and also given the event lister to wrong element , should get the value from the input box and invoke the lister of input box 您在JS中选择了错误的元素值,并将事件列表器赋予了错误的元素,应从输入框中获取值并调用输入框的列表器

Invoke it in onchang e to work it in up and down arrow clicks onchang e中调用它可以在向上和向下的箭头点击中使用它

<script>
function numberToHigh(){
var number = document.getElementById('num').value;
var message = document.getElementById('demo');
if (number > 100) {
    message.innerHTML = "number too high";
}else{
    message.innerHTML = "number ok";
}

}
</script>

<div>
    <p >Number : <input id="num" onchange="numberToHigh()" onkeyup="numberToHigh()" type="number"> </p>
    <p id="demo"> </p>
</div>

You should attach event listener to input, try this 您应该将事件侦听器附加到输入,请尝试此操作

 function numberToHigh(){ var number = document.getElementById('input_number'); var message = document.getElementById('demo'); if (number.valueAsNumber > 100) { message.innerHTML = "number too high"; } else{ message.innerHTML = "number ok"; } }; 
 <div> <p id="num">Number : <input id="input_number" onmousedown="numberToHigh()" onkeyup="numberToHigh()" type="number"> </p> <p id="demo" > </p> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM