<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    This Is A FineDay

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      93 隨筆 :: 0 文章 :: 69 評論 :: 0 Trackbacks

    ( 十一 ).Prototype 1.5 rc2) 使用指南之 form

    這一部分提供了很多與表單操作有關的功能,包括以下部分,當通過 $ 方法返回元素時,可以直接通過 $(element).method() 調用:

    Form 對象:提供了操作整個表單的一些方法
    Form.Element
    對象:提供了操作某個表單元素的方法
    TimedObserver
    類:周期性表單監視器,當表單元素值改變的時候執行一個回調函數,有 Form Element 兩種類型
    EventObserver
    類:利用事件來監視表單元素,當表單元素值改變的時候執行一個回調函數,有 Form Element 兩種類型

    Form 對象:

    reset(form) form.reset()
    serializeElements(elements)
    :將 elements 中的元素序列化,就是返回指定的所有元素的 queryString 的形式,便于在 xmlhttp 或其他地方使用

    serialize(form)
    :序列化整個表單
    getElements(form)
    :返回表單的所有可序列化元素
    getInputs(form, typeName, name)
    :返回所有符合 typeName name input 元素
    disable(form)
    :使整個表單處于不可用狀態
    enable(form)
    :是整個表單可用
    findFirstElement(form)
    :返回類型為 'input’, ’select’, 'textarea’ 的第一個可用的非隱藏元素
    focusFirstElement(form)
    :使 findFirstElement(form) 返回的元素得到焦點

    Form.Element 對象:

    focus(element) select(element) html 元素內置方法的封裝,除了返回元素本身
    serialize(element)
    :序列化指定的表單元素,返回 key=value 的形式,返回的 string 已經 encodeURIComponent
    getValue(element)
    :返回元素的值
    clear(element)
    :清除元素的值
    present(element)
    :判斷元素的值是否非空
    activate(element)
    :使元素獲得焦點
    disable(element)
    :使元素不可用
    enable(element)
    :是元素可用

    $F = Form.Element.getValue 方便使用

    Form.Element.Observer 以及 Form.Observer 類:

    周期性監視表單元素,如果表單或表單元素的值有改變時,執行執行一個回調函數,使用方式如下:

    var oser=new Form.Element.Observer(element, frequency, callback)
    or oser=new Form.Observer(form, frequency, callback)
    callback
    可以定義兩個參數 form/element 、 Form.serialize()/value

    Form.Element.EventObserver Form.EventObserver 類:

    這兩個類跟上面的差不多,只是不是周期性的監視,而是利用元素的 change click 事件來監視表單元素的變化,當發生變化時執行 callback ,參數跟上面一樣

    ?

    ( 十二 ).Prototype 1.5 rc2) 使用指南之 event.js

    在介紹 Prototype Event 對象前先介紹一下瀏覽器中的事件模型,瀏覽器中的事件主要有 HTML 事件、鼠標事件和鍵盤事件,前兩種事件比較好理解,這里主要解釋一下鍵盤事件以及它在 IE firefox 中的區別

    鍵盤事件包括 keydown 、 kepress keyup 三種,每次敲擊鍵盤都會 ( 依次? ) 觸發這三種事件,其中 keydown keyup 是比較低級的接近于硬件的事件,通俗的理解是這兩個事件可以捕獲到你敲擊了鍵盤中某個鍵;而 keypress 是相對于字符層面的較為高級點的事件,這個事件能夠捕捉到你鍵入了哪個字符??梢赃@樣理解,如果你敲擊了 A 鍵, keydown keyup 事件只是知道你敲擊了 A 鍵,它并不知道你敲的是大寫的 A( 你同時按下了 Shift ) 還是敲的是小寫 a ,它是以 " " 為單位,你敲入了大寫的 A ,它只是當成你敲下了 shift A 兩個鍵而已,但是 keypress 可以捕捉到你是敲入的大寫的 A 還是小寫的 a

    還要理解一個概念是鍵盤中的鍵分為字符 ( 可打印 ) 鍵和功能鍵 ( 不可打印 ) ,功能鍵包括 Backspace, Enter, Escape, the arrow keys, Page Up, Page Down, and F1 through F12

    下面說一下鍵盤事件的具體使用方法,

    鍵盤事件的 event 對象中包含一個 keyCode 屬性, IE 中只有這一個屬性,當為 keydown keyup 事件是, keycode 屬性表示你具體按下的鍵 ( 也稱為 virtual keycode) ,當捕捉的是 keypress 事件時 keyCode 屬性指的是你鍵入的字符 (character code)

    firefox 中情況有些不同, event 對象包含一個 keyCode 屬性和一個 charCode 屬性, keydown keyup 事件的時候, keyCode 表示的就是你具體按的鍵, charCode 0 ;當捕捉的是 keypress 事件時, keyCode 0 , charCode 指的是你按下的字符

    當捕捉的是 keypress 事件時, 當你按的是可打印字符時, keyCode 0 , charCode 指的是你按下的字符的鍵值,當你按的是不可打印字符時, keyCode 為按下的鍵的鍵值, charCode 0

    注意:功能鍵不會觸發 keypress 事件,因為 keypress 對應的就是可打印的字符,但是有一點 IE FF 中的區別,你按下一個字符鍵的同時按下 alt 鍵,在 IE 中不觸發 keypress 事件,但是在 ff 中可觸發,我發現在 IE 中按下 ctrl 鍵的時候只有按下 q 鍵會觸發事件其他的要么不會觸發事件,要么被瀏覽器 IE 自身捕獲了,例如你按下 ctrl_A ,全選某個東西,你按 ctrl_S 保存文件,但是在 FF 中就 好多了,事件都是先傳遞到網頁,再向外傳遞

    鑒于 IE FF 中的區別,如果你比較懶的話,建議只使用 keydow keyup 事件,這兩種事件的使用在 IE FF 中基本上沒有區別,也不要捕獲 ctrl_A 等被瀏覽器定義為快捷鍵的事件

    鍵盤事件 event 對象還有三個其他的屬性 altKey, ctrlKey, and shiftKey 來判斷你按下一個鍵的時候是否按下了 alt 等鍵,這三個屬性使用比較簡單,三種事件都可以使用,也不存在 ie ff 的兼容性問題

    Prototype 中的 Event 中又如下屬性:

    ? KEY_BACKSPACE: 8,
    ? KEY_TAB:?????? 9,
    ? KEY_RETURN:?? 13,
    ? KEY_ESC:????? 27,
    ? KEY_LEFT:???? 37,
    ? KEY_UP:?????? 38,
    ? KEY_RIGHT:??? 39,
    ? KEY_DOWN:???? 40,
    ? KEY_DELETE:?? 46,
    ? KEY_HOME:???? 36,
    ? KEY_END:????? 35,
    ? KEY_PAGEUP:?? 33,
    ? KEY_PAGEDOWN: 34,

    以及下面的方法:

    element(event) :返回觸發事件的元素
    isLeftClick(event)
    :判斷是否按下的左鍵
    pointerX(event)
    :事件觸發時鼠標的橫坐標,對于非鼠標事件,在 ff 中沒有此信息,但在 ie 中有?
    pointerY(event)
    :事件觸發時鼠標所在位置的縱坐標
    stop(event)
    :阻止事件向上傳播和瀏覽器的默認處理方法
    findElement(event, tagName)
    :找到觸發事件的元素的所有祖先元素中的 tagName tagName 的一個元素
    observe(element, name, observer, useCapture)
    :注冊事件處理函數
    stopObserving(element, name, observer, useCapture)
    :撤銷注冊的事件

    posted on 2008-07-03 21:50 Peter Pan 閱讀(218) 評論(0)  編輯  收藏 所屬分類: JS
    主站蜘蛛池模板: 成人奭片免费观看| 亚洲成人国产精品| 永久免费AV无码国产网站| 宅男666在线永久免费观看 | 成人免费夜片在线观看| 日本免费中文视频| 精品国产免费观看一区| 中文字幕亚洲乱码熟女一区二区| 亚洲伊人色一综合网| 国产精品免费久久| 成年大片免费视频| 日本亚洲成高清一区二区三区| 亚洲av无码成人影院一区| 2020因为爱你带字幕免费观看全集 | 亚洲av无码无在线观看红杏| 亚洲欧美国产精品专区久久| 久久免费的精品国产V∧| 亚洲国产精品成人一区| 亚欧乱色国产精品免费视频| 亚洲人成影院在线无码观看| 亚洲另类自拍丝袜第五页| 免费一级毛片清高播放| 亚洲色大成网站www久久九| 久久久精品2019免费观看| 亚洲中文字幕无码永久在线| 无码av免费一区二区三区| 亚洲不卡av不卡一区二区| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 亚洲精品乱码久久久久蜜桃 | 噼里啪啦电影在线观看免费高清| 亚洲中文字幕久久精品蜜桃| 免费大黄网站在线看| 男人都懂www深夜免费网站| 99999久久久久久亚洲| 最近2022中文字幕免费视频| 亚洲AV色吊丝无码| 免费无码精品黄AV电影| 色吊丝免费观看网站| 亚洲高清最新av网站| 久久综合给合久久国产免费| jizzjizz亚洲日本少妇|