js 实时监听input中值变化
注意:用到了jquery需要引入jquery.min.js。
需求:
1.每个地方需要分别打分,总分为100;
2.第一个打分总分为40;
3.第二个打分总分为60。
注意:需要判断null、""、isNaN()(是否是数字:如输入的是字母"a")、输入数值大小范围不能超过规定的总分;
如果为null、""、isNaN为true、输入数值大小范围超过规定的总分则将文本框赋值为空并将input对应的数值赋值为0参与计算总分。
文本框输入数值的时候总数会随着分数的输入而实时变化(即js实时监听input中值变化)。(实践是propertychange兼容各个浏览器,如IE、火狐、谷歌等)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="js/jquery.min.js"></script> <title>Insert title here</title> <style type="text/css"> </style> <script type="text/javascript"> $(function(){ $('input').bind('input propertychange', function() { var input1 = $("#input1").val(); var input2 = $("#input2").val(); var result = 0; if(input1==null||input1==""){ input1 = parseInt(0); }else if(isNaN(input1)){ alert("请填写数字!"); $("#input1").val(""); input1 = parseInt(0); }else{ input1 = parseInt(input1); if(input1>40){ alert("填写的分数不能超过40"); $("#input1").val(""); input1 = parseInt(0); } } if(input2==null||input2==""){ input2 = parseInt(0); }else if(isNaN(input2)){ alert("请填写数字!"); $("#input2").val(""); input2 = parseInt(0); }else{ input2 = parseInt(input2); if(input2>60){ alert("填写的分数不能超过60"); $("#input2").val(""); input2 = parseInt(0); } } result = input1+input2; $("#totalScore").val(result); }); }); </script> </head> <body> <!-- js 实时监听input中值变化 --> 分数1:<input id="input1" name="input1" value=""> <span style="color: red;">(总分为40)</span><br> 分数2:<input id="input2" name="input2" value=""> <span style="color: red;">(总分为60)</span><br><br> 总 分:<input id="totalScore" name="totalScore" value=""><br> </body> </html>