2011年10月29日 星期六

jQuery validate 套件:觸發驗證的事件

jQuery validate 預設的事件很奇妙
使用者按過一次 submit 觸發驗證以後,再回去改欄位內容
欄位內容就會每次 onChange 的時候都會觸發驗證
但因為有時候驗證是要送 AJAX 去給伺服器檢查
我們就不會很希望使用者每按一個鍵都會送一次 request
這樣當使用者一多的時候,或者是有人開機器人在亂按時
伺服器有可能會被這些訊息塞爆掉....

jQuery validate 套件的多國語言:更換 message 內容

在我們的專案中,由於語言資料已經寫在特定的檔案內
因此似乎不適用 jQuery validate 套件內建的 localization 方法
(我查到的資料好像都是說要把 message 寫在指定的 message.js 裡?)

要讓 error message 跟著使用者選取的語言更換,容易想到的可能作法有三種:
1、更換語言時讓整個網頁重新整理。
2、更換語言時把 validate 套件的 message dictionary 內容置換掉。
3、重新初始化 validate 套件。

其中 1 被主管打槍,主管要求我們不准重新整理網頁
2 找不到方法...(其中 disctionary 這個概念是搜尋時看到有人這麼說的,實際上我原本一直以為 validate 套件是需要時即時去讀字串的)
3 就是本篇的重點了~雖然是個笨一點的方法,但總是能夠做到效果....

2011年10月26日 星期三

Runtime.exec 容易發生的問題

最基本大概就是執行 Runtime.exec 實際上回傳的是 Process 物件
要用 InputStream 之類的物件接下來再轉成 String 才能顯示。
其他可能的問題可以參考下面的連結!

http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

2011年10月25日 星期二

JSP:檔案下載

先記一下相關網址:

 

其中第二個連結有提到設定 content length,也許可以解決 UrlConnection.getContentLength = -1 的問題?

2011年10月19日 星期三

Java 的多國語言:在 ResourceBundle 中使用絕對路徑

原本 ResourceBundle 是依照 package name 來做相對路徑的
不過在我們的專案中,因為 NAND 容量不夠,必須把資源檔放在別的地方
所以只能以絕對路徑去指定它的位置。

2011年10月3日 星期一

jQuery 表單驗證的常見錯誤

這是我自己在放 validate 時沒效果,花了很多時間 debug 以後發現的幾種蠢原因...

1、$(" ").validate 必須放在 $(function(){ .... }); 內,例如:

$(function(){
 $(" ").validate( .... );
}

放在 $(function() { }); 之外的話會因為沒有被初始化,所以不會真的生效,按下 submit 按鈕就會變成沒有指定 method 和 target 的 submit 了。

2、頁面要引用 jquery.validate.js。有時候讀不到語言檔好像也可能是因為忘了引用函式庫的關係。

3、輸入的欄位們跟 submit 按鈕必須夾在 <form> .... </form> 之間。這其實我不是非常確定,但之前測試時 submit 放在 </form> 之後就沒辦法觸發 $("form").submit() 了,所以自然也不會跳進驗證。

4、變數名稱記得改.................因為驗證的程式碼常常是複製貼上的!XD

5、validate 套件看的是 name 屬性,所以需要被驗證的欄位一定都要有 name 屬性。

6、validate 觸發方法是表單被送出 (submit) 的時候觸發,所以如果 submit 按鈕是由 JavaScript 觸發,要記得加上 form 的 submit 事件 (例如 $("#form_name").submit(); )。

附帶基本使用教學:jQuery教學-jQuery.validate萬用表單驗證元件直接套用

2011年9月29日 星期四

jQuery 取得 GET 變數的方法

參考資料:Get URL parameters & values with jQuery

上面那篇文章是自己做函式取得 URL 再拆字串
也許 jQuery 本身並沒有提供函式取得?
程式碼如下 (跟上面文章內的 code 一樣):

2011年9月9日 星期五

Java 的多國語言

在 Java 上要做多國語言,方法其實不太難,只要使用 ResourceBundle 搭配 properties 檔就可以了。

2011年9月8日 星期四

使用 Java 寄信:JavaMail 範例 (2012-10-12 修正)

自己寫的寄信程式的範例~
測試過公司、以前學校的郵件伺服器(未加密),以及 Gmail、Yeah、QQ 的 SSL 連線,還有 Gmail 的 TLS 連線。
其中 TLS 連線可以參考 [1] 的討論,原本我以為 TLS 是加密連線
不過似乎 TLS 其實是明文,因此需要加密內文的 SSL 在設定屬性時要用 "smtps",但 TLS 要用 "smtp"。

2011年9月7日 星期三

ANSI 字母

之前就知道一個數字代表一個字母或符號
不過一直沒有用到過,就沒試過對應關係是怎樣 XD
今天測試了一下,其實還蠻簡單的!
 

for(int i=1 ; i<128 ; i++) {
 System.out.println(i + " " + (char)i);
}

跑出來的結果如下:
1
2
3
4
5
6
7
8
9  
10

11
12
13

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 
33 !
34 "
35 #
36 $
37 %
38 &
39 '
40 (
41 )
42 *
43 +
44 ,
45 -
46 .
47 /
48 0
49 1
50 2
51 3
52 4
53 5
54 6
55 7
56 8
57 9
58 :
59 ;
60 <
61 =
62 >
63 ?
64 @
65 A
66 B
67 C
68 D
69 E
70 F
71 G
72 H
73 I
74 J
75 K
76 L
77 M
78 N
79 O
80 P
81 Q
82 R
83 S
84 T
85 U
86 V
87 W
88 X
89 Y
90 Z
91 [
92 \
93 ]
94 ^
95 _
96 `
97 a
98 b
99 c
100 d
101 e
102 f
103 g
104 h
105 i
106 j
107 k
108 l
109 m
110 n
111 o
112 p
113 q
114 r
115 s
116 t
117 u
118 v
119 w
120 x
121 y
122 z
123 {
124 |
125 }
126 ~
127