checkbox 和 radio的事件選擇一度讓我很迷惑。
開始以我對js的理解,我覺得change事件應該是最合理的,可惜啊ie下change事件是在改變後焦點離開時才觸發。
後來就用click mousedown等鼠標事件代替。發現click比mousedown要更完美一些:
radio注冊了click事件以後,神奇的是用鍵盤上的上下左右選擇時,居然會觸發鼠標事件,滾輪也會觸發,這種神奇的事情在mousedown下面是不會發生的。(webkit不能使用上下左右選擇)
checkbox注冊click事件後,奇跡再次上演,當我們用空格選中checkbox時,神奇的click事件再次觸發,而mousedown再次與奇跡擦身而過。(webkit還是不能用空格選擇)
讓我們都用click吧,給這兩位老兄減負吧,不要為了他們先天不足給他們綁定一堆事件了,對於這兩個家伙click才是萬能的。膜拜一下~~~
在用表單設計調查表時,為了減少用戶的操作,使用選擇框是一個好主意,在HTML的<input>標記中有兩種選擇框,即單選框和復選框,兩者的區別是單選框中的選項用戶只能選擇一項,而復選框中的選項用戶可以任意選擇多項,甚至全選。請看下面的例子:
下面給出這個例子的源代碼,結合代碼來講各參數的設置:
<form name="form1" >
你是否喜歡旅游?請選擇:
復制代碼 代碼如下:
<input type="radio" name="radiobutton" value="radiobutton" checked> 喜歡
<input type="radio" name="radiobutton" value="radiobutton"> 不喜歡
<input type="radio" name="radiobutton" value="radiobutton"> 無所謂<br>
您對那些運動感興趣,請選擇:
復制代碼 代碼如下:
<input type="checkbox" name="checkbox1" value="checkbox"> 跑步
<input type="checkbox" name="checkbox2" value="checkbox"> 打球
<input type="checkbox" name="checkbox3" value="checkbox"> 登山
<input type="checkbox" name="checkbox4" value="checkbox"> 健美<br>
</form>
從上面的源代碼中可看出,制作單選框只要把<input>標記的type參數設置為type="radio"就行了;而制作復選框則只要把<input>標記的type參數設置為type="checkbox"就行了。至於實際應用中用那種選擇框,要根據實際需要而定。若只需用戶有一種選擇的,就用單選框,如本例中“你是否喜歡旅游?”這個問題,用戶只能是一種選擇,所以采用了單選框;若允許用戶有多項選擇的內容,則采用復選框,如本例中的“你對那些運動感興趣?”這個問題,因一個人的興趣可能是多方面的,所以采用了復選框。
在<input>標記中設定checked參數,則該選框就被默認選中。如本例的第一個單選框(“喜歡”下面那個單選框)就設置為默認選中,這樣用戶若是想選擇“喜歡”的話,就可以不用再選了,當然,若用戶要選擇了“不喜歡”,則只要點擊“不喜歡”下的那單選框,而默認值被自動取消。用同樣的方法也可以設置某個復選框為默認被選中。但是復選框的默認選中不可濫用,否則會引起用戶的反感。
在radio裡面千萬要注意記得把所有的<input type='radio'>這個對象的name屬性都設為相同的,比如說上例的 name="radiobutton" ,記住不是ID屬性,只有這樣才能實現單選的效果,不然的話上面例子的‘喜歡'、‘不喜歡'、‘無所謂'就可以同時選上了,切記!