求大神帮看下这段代码有什么问题?

 if (j>6||j<1||typeof(j)!="number") {

                alert("请输入一个1到6之间的数值“); }

                else{

               document.write("hahahaha");}

为什么我在输入框输入里输入的数值在1到6之间还是会弹出提示呢?



88mm52080
浏览 1582回答 6
6回答

Running_v

网页input默认输入的是字符串,你需要将input的值手动转换下,parseInt(inputValue).这是基础问题,come on ,baby

ruibin

这涉及到js输入的一个本质问题:js所有输入框输入的数据都是字符串。所以typeof (j) != "number"肯定是为true的,因此条件总是成立。如果不相信,你可以用任一一个试试。例如你输入的是5,可实际获取到的是“5”。

qq_ZD_1

typeof(j)!="number"  typeof运算符计算得出的数字肯定不等于字符,所以条件一直为真

林方清i

<input type="text" name="" id="txt" value="" /> <input type="button" name="" id="btn" value="确定" />var btn = document.getElementById("btn"); btn.onclick = function() { var txt = document.getElementById("txt").value; var num = Number(txt);//字符串转换成数值 if (isNaN(num)) {//判断num是不是一个数值 alert("请输入数字"); } else { if (num < 1 || num > 6) { alert("请输入1-6之间的数字"); } } }能理解这段,你应该就知道了

走向流沙

好想知道你是怎么输入的= = 贴全代码,才好查

Caballarii

你确定能弹出提示?alert("请输入一个1到6之间的数值“)这句后半个引号和括号都是中文的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript