没有仔细看你switch函数,汗。。 function(){ switch (a){ case 0: //return false; case 1: return false; break;//--->重要的,比return重要 case 2: return true; break; default: return false; } }
kabakaba兄的方法是可以的,但你只是完全按照我给出的例程来做的,如果是这样的函数呢? function(){ switch (a){ case 0: return 1; case 1: return 1; case 2: return 2; case 3: return 2; case 4: return 3; default: return 0; } }cgisir兄的方法试过了,不行。 case 0 || 1:0可以用,但是1不行
因为特殊原因,我需要对用户输入的日期时间做严格控制,我想通过keypress事件来限制用户能输入的字符达到目的,下面是这个函数还没完成的代码: function Date(oTextbox,oEvent){ //获取当前文本框中字符串的长度,如:2007-05-26 10:30 的长度为 16 var nLength = oTextbox.value.length; //alert (nLength); switch (nLength) { case 0: chgAttribute(oTextbox,"validchars","8,50,116"); //年的第1位数:只允许输入 2 return TextUtil.allowChars(oTextbox,oEvent); case 1: chgAttribute(oTextbox,"validchars","8,48,116"); //年的第2位数:只允许输入 0 return TextUtil.allowChars(oTextbox,oEvent); case 2: chgAttribute(oTextbox,"validchars","8,48,116"); //年的第3位数:只允许输入 0 return TextUtil.allowChars(oTextbox,oEvent); case 3: chgAttribute(oTextbox,"validchars","8,55,116"); //年的第4位数:只允许输入 7 return TextUtil.allowChars(oTextbox,oEvent); case 4: chgAttribute(oTextbox,"validchars","8,45,116"); //分隔符:只允许输入 - return TextUtil.allowChars(oTextbox,oEvent); case 5: chgAttribute(oTextbox,"validchars","8,48,116"); //月的第1位数:只允许输入 0 return TextUtil.allowChars(oTextbox,oEvent); case 6: chgAttribute(oTextbox,"validchars","8,53,54,116"); //月的第2位数:只允许输入 5,6 return TextUtil.allowChars(oTextbox,oEvent); case 7: chgAttribute(oTextbox,"validchars","8,45,116"); //分隔符:只允许输入 - return TextUtil.allowChars(oTextbox,oEvent); case 8: chgAttribute(oTextbox,"validchars","8,48,49,50,51,116"); //日的第1位数:只允许输入 0-3 return TextUtil.allowChars(oTextbox,oEvent); case 9: chgAttribute(oTextbox,"validchars","8,48,49,50,51,52,53,54,55,56,57,116"); //只允许输入 0-9 return TextUtil.allowChars(oTextbox,oEvent); case 10: chgAttribute(oTextbox,"validchars","8,32,116"); //只允许输入 空格 return TextUtil.allowChars(oTextbox,oEvent); default: return false; } } 可以看到,case 0,case 1;case 4,case 7等执行的代码是相同的,当然如果不嫌烦或者不嫌文件太大的话是可以一个一个写的,但始终麻烦呀。
function(){ switch (a){ case 0: case 1: return 1; case 2: case 3: return 2; case 4: return 3; default: return 0; } }
可以看到,case 0,case 1;case 4,case 7等执行的代码是相同的, 那你可以吧那些 case写在一起,只是最后一个写操作,如case '0': case '1': case '4': case '7': do something; break; case other: break;
function(){
switch (a){
case 0:
//return false;
case 1:
return false;
break;//--->重要的,比return重要
case 2:
return true;
break;
default:
return false;
}
}
function(){
switch (a){
case 0:
return 1;
case 1:
return 1;
case 2:
return 2;
case 3:
return 2;
case 4:
return 3;
default:
return 0;
}
}cgisir兄的方法试过了,不行。
case 0 || 1:0可以用,但是1不行
function Date(oTextbox,oEvent){
//获取当前文本框中字符串的长度,如:2007-05-26 10:30 的长度为 16
var nLength = oTextbox.value.length;
//alert (nLength);
switch (nLength) {
case 0:
chgAttribute(oTextbox,"validchars","8,50,116"); //年的第1位数:只允许输入 2
return TextUtil.allowChars(oTextbox,oEvent);
case 1:
chgAttribute(oTextbox,"validchars","8,48,116"); //年的第2位数:只允许输入 0
return TextUtil.allowChars(oTextbox,oEvent);
case 2:
chgAttribute(oTextbox,"validchars","8,48,116"); //年的第3位数:只允许输入 0
return TextUtil.allowChars(oTextbox,oEvent);
case 3:
chgAttribute(oTextbox,"validchars","8,55,116"); //年的第4位数:只允许输入 7
return TextUtil.allowChars(oTextbox,oEvent);
case 4:
chgAttribute(oTextbox,"validchars","8,45,116"); //分隔符:只允许输入 -
return TextUtil.allowChars(oTextbox,oEvent);
case 5:
chgAttribute(oTextbox,"validchars","8,48,116"); //月的第1位数:只允许输入 0
return TextUtil.allowChars(oTextbox,oEvent);
case 6:
chgAttribute(oTextbox,"validchars","8,53,54,116"); //月的第2位数:只允许输入 5,6
return TextUtil.allowChars(oTextbox,oEvent);
case 7:
chgAttribute(oTextbox,"validchars","8,45,116"); //分隔符:只允许输入 -
return TextUtil.allowChars(oTextbox,oEvent);
case 8:
chgAttribute(oTextbox,"validchars","8,48,49,50,51,116"); //日的第1位数:只允许输入 0-3
return TextUtil.allowChars(oTextbox,oEvent);
case 9:
chgAttribute(oTextbox,"validchars","8,48,49,50,51,52,53,54,55,56,57,116"); //只允许输入 0-9
return TextUtil.allowChars(oTextbox,oEvent);
case 10:
chgAttribute(oTextbox,"validchars","8,32,116"); //只允许输入 空格
return TextUtil.allowChars(oTextbox,oEvent);
default:
return false;
}
}
可以看到,case 0,case 1;case 4,case 7等执行的代码是相同的,当然如果不嫌烦或者不嫌文件太大的话是可以一个一个写的,但始终麻烦呀。
switch (a){
case 0:
case 1:
return 1;
case 2:
case 3:
return 2;
case 4:
return 3;
default:
return 0;
}
}
那你可以吧那些 case写在一起,只是最后一个写操作,如case '0':
case '1':
case '4':
case '7':
do something;
break;
case other:
break;
我知道switch的执行顺序,但可能我理解错了。
我以为,下面的情况:
switch (a){
case 0:
case 1:
dosomething;
break;
default:
doother;
}
我以为像上面的情况,0会被忽略,而1可以被执行。