vue解決IE9及以下不顯示placeholder的問題
參考文章連結
如果是 .html的專案,在需要的頁面引入jquery後再引入placeholder.js外掛即可解決
因為我是vue+elementUI的專案,所以不會每次切換選單都重新整理瀏覽器,所以整理了一下vue裡的用法
在這裡也需要引入jquery檔案,不然可能會報錯,在index.html裡引入jquery就可以了
接下來就是vue裡的用法了
首先在公共js檔案裡新建placeholder.js檔案,輸出一個PlaceholderInit函式
//解決ie下 input 的placeholder不顯示問題
export function PlaceholderInit() {
return jQuery(function() {
var placeholderfriend = {
focus: function(s) {
s = $(s)
.hide()
.prev()
.show()
.focus();
var idValue = s.attr("id");
if (idValue) {
s.attr("id", idValue.replace("placeholderfriend", ""));
}
var clsValue = s.attr("class");
if (clsValue) {
s.attr("class", clsValue.replace("placeholderfriend", ""));
}
}
};
//判斷是否支援placeholder
function isPlaceholer() {
var input = document.createElement("input");
return "placeholder" in input;
}
//不支援的程式碼
if (!isPlaceholer()) {
$(function() {
var form = $(this);
var elements = form.find("input[type='text'][placeholder]");
elements.each(function() {
var s = $(this);
var pValue = s.attr("placeholder");
var sValue = s.val();
if (pValue) {
if (sValue == "") {
s.val(pValue);
}
}
});
elements.focus(function() {
var s = $(this);
var pValue = s.attr("placeholder");
var sValue = s.val();
if (sValue && pValue) {
if (sValue == pValue) {
s.val("");
}
}
});
elements.blur(function() {
var s = $(this);
var pValue = s.attr("placeholder");
var sValue = s.val();
if (!sValue) {
s.val(pValue);
}
});
var elementsPass = form.find("input[type='password'][placeholder]");
elementsPass.each(function(i) {
var s = $(this);
var pValue = s.attr("placeholder");
var sValue = s.val();
if (pValue) {
if (sValue == "") {
var html = this.outerHTML || "";
html = html
.replace(
/\s*type=(['"])?password\1/gi,
" type=text placeholderfriend"
)
.replace(/\s*(?:value|on1[a-z]+|name)(=(['"])?\S*\1)?/gi, " ")
.replace(
/\s*placeholderfriend/,
" placeholderfriend value='" +
pValue +
"' " +
"οnfοcus='placeholderfriendfocus(this);' "
);
var idValue = s.attr("id");
if (idValue) {
s.attr("id", idValue + "placeholderfriend");
}
var clsValue = s.attr("class");
if (clsValue) {
s.attr("class", clsValue + "placeholderfriend");
}
s.hide();
s.after(html);
}
}
});
elementsPass.blur(function() {
var s = $(this);
var sValue = s.val();
if (sValue == "") {
var idValue = s.attr("id");
if (idValue) {
s.attr("id", idValue + "placeholderfriend");
}
var clsValue = s.attr("class");
if (clsValue) {
s.attr("class", clsValue + "placeholderfriend");
}
s.hide()
.next()
.show();
}
});
});
}
window.placeholderfriendfocus = placeholderfriend.focus;
});
}
在需要顯示placeholder的頁面解構出PlaceholderInit函式
import { PlaceholderInit } from '@/utils/placeholder'
在頁面顯示之前呼叫這個函式,這樣當前頁面需要顯示placeholder的地方在頁面進來的時候就會正常顯示
PlaceholderInit();
如果有新增彈框的輸入框頁需要顯示placeholder,在開啟新增彈框的時候同樣呼叫此函式
別的需要的地方使用方法也一樣
相關文章
- iview在ie9及以上的相容問題解決方案ViewIE9
- 若依解決VUE前端時間顯示問題Vue前端
- input 的placeholder不顯示如何解決
- vue-解決background-image:url不顯示問題Vue
- LiveCharts中文顯示亂碼問題的解決Echarts
- Vue 相容 ie9 的全面解決方案VueIE9
- archlinux下wps顯示問題解決方法Linux
- pyecharts地圖功能,並解決顯示不全或只顯示南海諸島問題解決Echarts地圖
- vue使用iview Timeline 時間軸不顯示渲染的效果問題解決辦法VueView
- vue渲染時閃爍{{}}的問題及解決方法Vue
- 成功解決github無法顯示圖片問題Github
- echarts 在 vue2 中的顯示問題EchartsVue
- IOS下圖片不能顯示問題的解決辦法iOS
- vue+springboot實現圖片的上傳及回顯失敗問題的解決VueSpring Boot
- 解決macOS新建txt文件在Windows下不換行問題MacWindows
- vue-element-admin 解決壓縮打包之後背景圖片不顯示問題Vue
- AD9中元件無法顯示的問題解決元件
- [macOS] 解決ipad 無線顯示器 (sidebar功能) 掉線的問題MaciPadIDE
- 解決 PBootCMS 後臺登入不顯示驗證碼的問題boot
- 有關placeholder在ie9中的一點折騰。IE9
- Word——編輯的公式顯示不完整問題的解決辦法公式
- 解決VUE引用element不能顯現元件css樣式問題Vue元件CSS
- Oracle的SCN顯示問題Oracle
- IPython的安裝及問題解決Python
- vue 專案引入字型圖示報錯、不顯示等問題Vue
- SAP CRM WebClient UI上以html格式顯示note的問題討論WebclientUIHTML
- SecureCRT - 自動斷開問題和標籤頁標題顯示的解決辦法Securecrt
- vue中常見的問題以及解決方法Vue
- LF和CRLF換行符不一致導致的Git顯示修改問題分析及解決Git
- AMD 5700 XT顯示卡裝ubuntu18.04.* 驅動的問題解決(全)Ubuntu
- proteus模擬數碼管無法動態顯示的問題-解決方法
- 相容系列-JSON.parse()轉字串為json物件,解決IE7及以下不相容問題JSON字串物件
- vue iOS 呼叫系統相簿拍照時顯示英文問題VueiOS
- Kafka常見的問題及解決方案Kafka
- CAS導致的ABA問題及解決
- Xcode 10.1 新特性及解決的問題XCode
- nodejs 近期所遇到的問題及解決NodeJS
- vue-router懶載入速度緩慢問題及解決方法Vue