function(){
switch (a){
case 0:
//return false;
case 1:
return false;
case 2:
return true;
default:
return false;
}
}

解决方案 »

  1.   

    没有仔细看你switch函数,汗。。
    function(){
    switch (a){
    case 0:
    //return false;
    case 1:
    return false;
    break;//--->重要的,比return重要
    case 2:
    return true;
    break;
    default:
    return false;
    }
    }
      

  2.   

    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不行
      

  3.   

    因为特殊原因,我需要对用户输入的日期时间做严格控制,我想通过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等执行的代码是相同的,当然如果不嫌烦或者不嫌文件太大的话是可以一个一个写的,但始终麻烦呀。
      

  4.   

    function(){
      switch (a){
        case 0:
        case 1:
          return 1;
        case 2:
        case 3:
          return 2;
        case 4:
          return 3;
        default:
          return 0;
    }
    }
      

  5.   

    可以看到,case 0,case 1;case 4,case 7等执行的代码是相同的,
    那你可以吧那些 case写在一起,只是最后一个写操作,如case '0':
    case '1':
    case '4':
    case '7':
    do something;
    break;
    case other:
    break;
      

  6.   

    switch 的运行顺序知道就可以按照你要的情况做出修改了。switch是由上至下的运行,如果没有break等跳出的话,会一直向下走。
      

  7.   

    感谢各位解答。
    我知道switch的执行顺序,但可能我理解错了。
    我以为,下面的情况:
    switch (a){
    case 0:
    case 1:
    dosomething;
    break;
    default:
    doother;
    }
    我以为像上面的情况,0会被忽略,而1可以被执行。