我正在检查来自输入字段的号码是否在范围内
function timeCheck(){
var time = $.trim($('#enterTime').value());
Number.prototype.between = function(min,max){
return this > min && this < max;
};
if ((time).between(1,9)){
alert("test");
}
}
但不知何故它不起作用..警报永远不会被触发
感谢您的帮助和快速回答
答案 0 :(得分:2)
不是右括号,但缺少括号:
if((time).between(1,9){
应该是:
if ((time).between(1,9)){
或
if (time.between(1,9)){
答案 1 :(得分:1)
FIDDLE 请尝试以下代码
function timeCheck(){
var time = parseInt($.trim($('#enterTime').val()),10);
Number.prototype.between = function(min,max){
var num = parseInt(this,10);
return num >= min && num <= max;
}
if((time).between(1,9)){
alert("test");
}
}
问题在于类型转换对象时间不是数字类型。
希望它有所帮助.....
答案 2 :(得分:1)
扩展@ Daniel的答案,还有另外两个错误:首先,$('#enterTime').value()
不是有效的jQuery函数,应该是$('#enterTime').val()
。其次,您需要将值转换为Number
类型。否则,您将尝试访问不存在的字符串的between
属性。最终的代码是:
function timeCheck(){
var time = new Number($.trim($('#enterTime').val()));
Number.prototype.between = function(min,max){
return this > min && this < max;
};
if(time.between(1,9)){
alert("test");
}
}
答案 3 :(得分:0)
此问题已被提出:here
尝试我建议的功能(在上面提到的PHP文章中),它对增加或减少范围有效,而不仅限于整数:
function between(n, a, b)
{
var chk= false;
if ((a==n)&&(b==n)){
chk = true;
}else{
chk = (n-a)*(n-b)<0;
}
return chk;
}
如果n在a和b之间,则函数为TR