顯示具有 javascript 標籤的文章。 顯示所有文章
顯示具有 javascript 標籤的文章。 顯示所有文章

2011年8月4日 星期四

JQuery之軛

今天體會到Jquery的可怕之處,以前只知道他極度方便,
可以活用selector來對許多element進行調整、設定,
甚至一些事件、css完全不用寫在html tag中,
現在發現這樣作法的後果就是...當你使用過多之後,
變得很難掌控程式的行為,
因為可能不清楚某些js(自己寫的或是用別人的)
會去bind的event,像是不知道為什麼會觸發某些事件,而且找不到觸發點...
...
...
...這樣是要怎樣debug啊?有些狀況可能連中斷點都不知道要設在哪邊。

看來使用JQuery中還是有很多學問的,沒有清楚的規劃架構、框架,
它可能便利反而造成更多問題,就像何金銀發現"拯救懦夫"只是一個騙錢的幌子一樣。

2011年6月23日 星期四

javascript 檢查輸入是否為英數字

在撰寫web系統有時需要限制欄位只能key 英文 或 數字,
而不給key中文,符號的可怕需求...
這邊提供從大學同學阿勇多年經驗的code...XD




========jsp中的input 欄位 兩個事件都要有============

<input onkeydown="divChian();" onkeypress="LimitInput('Num',false);" type="”text”" />
//divChian() 擋中文
//LimitInput('Num',false) 選擇只能輸入數字, 且不轉換成大寫(若為英文)


===============javascript==============

//擋中文
function divChian(){
    var LOBJ_Lable = window.event;
        if(LOBJ_Lable.keyCode == 229) //中文都會有299這個code
              event.returnValue=false;
}

//LimitInput[參數,控制的物件,是否要轉大寫(true:要轉;false:不要轉)]
function LimitInput(LSTR_Type,LBOL_Chagecode){
  var LOBJ_Lable = window.event;
  //轉大寫;
  if (LBOL_Chagecode==true){
    if (LOBJ_Lable.keyCode >= 97  && LOBJ_Lable.keyCode<= 124){
             LOBJ_Lable.keyCode-=32;
           }
        }
  switch (LSTR_Type){
    //只能輸入英數
    case "NumEng":
      if ( (LOBJ_Lable.keyCode >= 48  && LOBJ_Lable.keyCode<= 57)||
               (LOBJ_Lable.keyCode >= 65  && LOBJ_Lable.keyCode<= 90)||
               (LOBJ_Lable.keyCode >= 97  && LOBJ_Lable.keyCode<= 122)){
              return LOBJ_Lable.keyCode;
      }else{
              return LOBJ_Lable.keyCode =0;
            }
          break;
        case "Num":
           if(LOBJ_Lable.keyCode < 48 || LOBJ_Lable.keyCode > 57){
               LOBJ_Lable.keyCode = 0;
           }
           break;
        case "NumDotMinus":
      if ((LOBJ_Lable.keyCode >= 48  && LOBJ_Lable.keyCode<= 57)||
            (LOBJ_Lable.keyCode == 45 || LOBJ_Lable.keyCode == 46)){
        return LOBJ_Lable.keyCode;
      }else{
        return LOBJ_Lable.keyCode =0;
      }
     break;
  }
}