2009-04-24 107 views

回答

137

當你離開對象而不必改變其值時,將觸發onBlur事件。

onChange事件僅在您更改字段的值並失去焦點時纔會調用。

你可能想看看quirksmode's intro to events。當您與瀏覽器進行交互時,這是一個瞭解瀏覽器中發生的事情的好地方。他的書也很好。

+1

你的關於quirksmode的鏈接不要談論模糊,只是基本事件 – stackdave 2018-01-19 08:04:02

3

的onChange是,當一個領域內的東西變化了,例如,你寫在文本輸入的東西。

onBlur是當你把焦點從一個領域,例如,你正在寫一個文本輸入,你點擊了它。

因此,他們幾乎是一樣的事情,但onChange行事的方式onBlur做了一些事情,在輸入需要改變。

4

的onblur是當你的重點不再是對有問題的領域。

onblur屬性返回當前元素上存在的onBlur事件處理程序代碼(如果有的話)。

onChange是當字段的值發生變化時。

9

一個使事情具體化的例子。如果你有這樣的選擇:

<select onchange="" onblur=""> 
    <option>.... 
</select> 

當您離開的onblur()被調用。當您從選擇中選擇不同的選項時,即調用onchange(),即更改當前選定的選項。

+1

另一個例子:在`number`類型的輸入中,點擊向上/向下箭頭將觸發一個改變事件(但不是模糊事件),而打字只有在領域失去焦點時纔會導致更改事件。 – 2015-09-21 16:47:29

17

的onblur當字段失去焦點火災,而火災電平變化時字段的值的變化。但是,這些事件並不總是以相同的順序發生。

在Firefox中,從已更改的字段中跳出將會觸發onchange然後onblur,並且它通常會在IE中執行相同操作。但是,如果您按下Enter鍵而不是Tab,則在Firefox中將會觸發onb​​lur,然後onchange,而IE通常會按原始順序觸發。但是,我已經看到IE會首先啓動模糊的情況,所以要小心。你不能認爲onblur或onchange會在另一個之前發生。

7

在Firefox中只有平變化的火災時,使用Tab鍵或點擊輸入框之外。 Onblur也是如此。不同的是,無論你是否在場上改變了任何東西,onblur都會觸發。有可能ENTER會觸發其中的一個或兩個,但如果您在表單中禁用了ENTER以防止意外提交,則您不會知道這一點。

3

我認爲這裏很重要的一點是onBlur()不管。

這是一個有用的線程,但它唯一沒有說明的是onBlur()將每一次都觸發。

的onChange()當值改變纔會觸發。

相關問題