首頁 web前端 js教程 js change,propertychange,input事件小议_javascript技巧

js change,propertychange,input事件小议_javascript技巧

May 16, 2016 pm 05:58 PM
change input

https://github.com/mootools/mootools-core/issues/2170

这个问题来自IE(LTE8)中对checkbox和radio change事件的实现问题,在IE(LTE8)中测试下来,当你点击一个checkbox或者radio,它的change事件是不会立即触发,除非你让它失去焦点,而在其他标准浏览器中(包括IE9),是点击后立即触发change事件的,这的确是个蛋疼的问题,说到解决方法,倒也比较容易,用IE(LTE8)中元素特有的propertychange事件来处理(IE9已经没这玩意儿了),就能避免上述问题,如:

复制代码 代码如下:

checkEl.attachEvent('onpropertychange', function() {
console.log('hey man, I am changed');
});

但是这样就认为解决了,是不充分的,因为像checkEl.setAttribute('data-value', 'god')这样的操作也会触发其propertychange事件,所以我们需要用其event.propertyName来判断下,如:

复制代码 代码如下:

checkEl.attachEvent('onpropertychange', function() {
if(window.event.propertyName == 'checked')
console.log('blah blah blah...');
});

这样算是可以了。由此展开我又测试了下select,其change事件的表现在不同浏览器中一致,没有出现非要先失去焦点的情况。我又测试了下input[type="text"],它的change事件是我们所熟悉的,要失去焦点才会触发,那么当我们想让它一输入东西就立即触发呢,参考之前的例子在IE(LTE8)中,我们可以用propertychange来实现,只不过propertyName的条件变成‘value'而已。在其他标准浏览器中(包括IE9),我们可以用HTML5中的一个标准事件input, 如:

复制代码 代码如下:

inputEl.addEventListener('input', function(event) {
console.log('input event fired');
}, false);

这样我们的每一次输入都会触发此事件,有人会说为什么不用keyup来监听一下, 这里有篇文章(原文链接)对此问题进行了阐述,感兴趣的也可以读读。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

laravel input隱藏域怎麼實現 laravel input隱藏域怎麼實現 Dec 12, 2022 am 10:07 AM

laravel input隱藏域的實作方法:1、找到並開啟Blade模板檔案;2、在Blade模板中使用method_field方法來建立隱藏域,其建立語法為「{{ method_field('DELETE') }}」。

vue3怎麼封裝input元件和統一表單數據 vue3怎麼封裝input元件和統一表單數據 May 12, 2023 pm 03:58 PM

準備工作用vuecreateexample建立項目,參數大概如下:用原生input原生的input,主要是value和change,資料在change的時候需要同步。 App.tsx如下:import{ref}from'vue';exportdefault{setup(){//username就是資料constusername=ref('張三');//輸入框變化的時候,同步資料constonInput=;return( )=>({

點選input框沒有遊標怎麼辦 點選input框沒有遊標怎麼辦 Nov 24, 2023 am 09:44 AM

點選input框沒有遊標的解決方法:1、確認輸入框焦點;2、清除瀏覽器快取;3、更新瀏覽器;4、使用JavaScript;5、檢查硬體設備;6、檢查輸入框屬性;7、調試JavaScript程式碼;8、檢查頁面其他元素;9、考慮瀏覽器相容性。

Vue文件中的input框綁定事件詳解 Vue文件中的input框綁定事件詳解 Jun 21, 2023 am 08:12 AM

Vue.js是一種輕量級的JavaScript框架,具有易用、高效和靈活的特點,是目前廣受歡迎的前端框架之一。在Vue.js中,input框綁定事件是十分常見的需求,本文將詳細介紹Vue文件中的input框綁定事件。一、基礎概念在Vue.js中,input框綁定事件指的是將輸入框的值綁定到Vue實例的資料物件中,從而實現輸入和回應的雙向綁定。在Vue.j

Vue文檔中的input框回車事件和驗證函數使用方法 Vue文檔中的input框回車事件和驗證函數使用方法 Jun 20, 2023 am 09:13 AM

Vue是一個流行的JavaScript前端框架,它的核心是響應式資料綁定和元件系統。在Vue的應用程式中,input框是最常用的UI元素之一。在使用者輸入文字時,我們希望可以監聽回車事件,並且在提交前對輸入內容進行驗證。本篇文章將介紹Vue文件中的input框回車事件和驗證函數使用方法。一、Vue中input框回車事件在Vue中監聽input框的回車事件非常簡

使用Python的input()函數從使用者取得輸入 使用Python的input()函數從使用者取得輸入 Aug 22, 2023 am 11:21 AM

標題:使用Python的input()函數從使用者取得輸入在編寫程式時,經常需要從使用者取得輸入。 Python提供了一個內建函數input(),可以用來取得並接收使用者的輸入。本文將介紹如何使用input()函數以及一些常見的應用場景。 input()函數用法非常簡單,它接受一個可選的提示訊息作為參數,並等待使用者輸入。使用者輸入之後,input()函數會傳回一個

我們如何在HTML中新增單行輸入欄位? 我們如何在HTML中新增單行輸入欄位? Aug 20, 2023 pm 05:45 PM

使用<isindex>標籤新增單行輸入欄位。 HTML<isindex>標籤用於透過文字欄位查詢文件。該標籤可以在任何地方使用,但最好放在head標籤中。注意:這是一個已棄用的標籤,不應該使用。以下是屬性清單−屬性值描述Prompt字串文字欄位的標籤ActionURL在需要將查詢傳送到不同的URL時使用範例嘗試下面的程式碼−<!Doctypehtml><html

Razer DeathAdder V3 HyperSpeed:新款滑鼠提供高解析度和高達 8,000 Hz 的無線輪詢率 Razer DeathAdder V3 HyperSpeed:新款滑鼠提供高解析度和高達 8,000 Hz 的無線輪詢率 Jun 22, 2024 am 12:20 AM

Razer 提供種類豐富的遊戲配件。製造商現在透過 Razer DeathAdder V3 HyperSpeed 擴展了該系列。

See all articles