jQuery不兼容input的change事件問(wèn)題解決過(guò)程
最近開(kāi)發(fā)一個(gè)項(xiàng)目,需要實(shí)現(xiàn)用戶(hù)在WEB表單里的多個(gè)INPUT框中輸入數(shù)量后,立即自動(dòng)計(jì)算加總各項(xiàng)輸入的數(shù)量之和,并顯示在指定的INPUT框中,這個(gè)功能實(shí)現(xiàn)的原理是簡(jiǎn)單的,就是只需要在INPUT的onchange事件中計(jì)算加總并將結(jié)果賦給指定的INPUT框中即可實(shí)現(xiàn),代碼如下:
$("input.syxcost").change(function(){
computeReceivedsyxcost();
}
function computeReceivedsyxcost(){ //計(jì)算加總
var syxcost=0;
$("input.syxcost").each(function(){
var cost=parseFloat($(this).val());
if (!isNaN(cost))
syxcost=syxcost + cost;
});
$("#receivedsyxcost").val(syxcost); //顯示最終結(jié)果
}
原以為這樣就解決了,在谷歌瀏覽器確實(shí)是OK的,但在IE 9中,卻發(fā)現(xiàn)在INPUT中輸入數(shù)量后,并不會(huì)立即觸發(fā)change事件,存在兼容問(wèn)題,在網(wǎng)上搜了許多,也都說(shuō)存在這個(gè)問(wèn)題,沒(méi)有辦法,我就只有自己來(lái)依據(jù)實(shí)現(xiàn)情況來(lái)寫(xiě),我的思路是:當(dāng)INPUT獲取焦點(diǎn)時(shí),就獲取當(dāng)前的VALUE并存入該INPUT的自定義的屬性中(如:data-oval),然后在INPUT失去焦點(diǎn)的時(shí)候,就獲取當(dāng)前的VALUE與之前存在自定義的屬性中的值是否相同,若不相同,則說(shuō)明VALUE被改變,就需要重新計(jì)算,否則忽略,實(shí)現(xiàn)代碼如下:
$("input.syxcost").focus(function(){
$(this).attr("data-oval",$(this).val()); //將當(dāng)前值存入自定義屬性
}).blur(function(){
var oldVal=($(this).attr("data-oval")); //獲取原值
var newVal=($(this).val()); //獲取當(dāng)前值
if (oldVal!=newVal)
{
computeReceivedsyxcost(); //不相同則計(jì)算
}
});
經(jīng)反復(fù)驗(yàn)證,在所有的瀏覽器下均顯示正常,解決了兼容的問(wèn)題!
- jQuery解決input超多的表單提交
- js與jquery實(shí)時(shí)監(jiān)聽(tīng)輸入框值的oninput與onpropertychange方法
- jquery中$(#form :input)與$(#form input)的區(qū)別
- jQuery根據(jù)ID獲取input、checkbox、radio、select的示例
- jquery ajax提交表單數(shù)據(jù)的兩種方式
- jquery validate.js表單驗(yàn)證的基本用法入門(mén)
- jQuery-serialize()輸出序列化form表單值的方法
- jQuery對(duì)表單元素的取值和賦值操作代碼
- jquery下異步提交表單 異步跨域提交表單
- jquery的ajaxSubmit()異步上傳圖片并保存表單數(shù)據(jù)演示代碼
- jQuery獲取及設(shè)置表單input各種類(lèi)型值的方法小結(jié)
相關(guān)文章
設(shè)置jQueryUI DatePicker默認(rèn)語(yǔ)言為中文
本文主要介紹jQueryUI DatePicker設(shè)置中文的方法,需要的朋友可以參考下。2016-06-06在jquery中的ajax方法怎樣通過(guò)JSONP進(jìn)行遠(yuǎn)程調(diào)用
這一節(jié)主要演示下在JQUERY中的ajax方法怎樣通過(guò)JSONP進(jìn)行遠(yuǎn)程調(diào)用,需要的朋友可以參考下2014-04-04jQuery無(wú)刷新上傳之uploadify3.1簡(jiǎn)單使用
本文主要介紹jQuery插件uploadify3.1的簡(jiǎn)單使用,希望能幫到大家,有需要的朋友可以參考一下。2016-06-06jquery 將當(dāng)前時(shí)間轉(zhuǎn)換成yyyymmdd格式的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇jquery 將當(dāng)前時(shí)間轉(zhuǎn)換成yyyymmdd格式的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考2016-06-06jQuery編程動(dòng)畫(huà)的基本方法示例詳解
這篇文章主要為大家介紹了jQuery編程動(dòng)畫(huà)基本實(shí)現(xiàn)方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08js根據(jù)json數(shù)據(jù)中的某一個(gè)屬性來(lái)給數(shù)據(jù)分組的方法
今天小編就為大家分享一篇js根據(jù)json數(shù)據(jù)中的某一個(gè)屬性來(lái)給數(shù)據(jù)分組的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10jQuery簡(jiǎn)單判斷值是否存在于數(shù)組中的方法示例
這篇文章主要介紹了jQuery簡(jiǎn)單判斷值是否存在于數(shù)組中的方法,涉及jQuery數(shù)組遍歷及基于$.inArray的元素判斷相關(guān)操作技巧,需要的朋友可以參考下2018-04-04jQuery+json實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建復(fù)雜表格table的方法
這篇文章主要介紹了jQuery+json實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建復(fù)雜表格table的方法,涉及jQuery針對(duì)json數(shù)據(jù)的解析與表格動(dòng)態(tài)創(chuàng)建操作相關(guān)技巧,需要的朋友可以參考下2016-10-10