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,在開啟新增彈框的時候同樣呼叫此函式
別的需要的地方使用方法也一樣
相關文章
- ie9不顯示flash的解決方法IE9
- 解決成功安裝ACS以後顯示空白的問題!
- JFreechart 在linux下不顯示及中文亂碼問題Linux
- 若依解決VUE前端時間顯示問題Vue前端
- iview在ie9及以上的相容問題解決方案ViewIE9
- vue-解決background-image:url不顯示問題Vue
- input 的placeholder不顯示如何解決
- 解決CentOS 中顯示亂碼問題CentOS
- 徹底解決pidgin群顯示null問題及無法輸入中文的問題Null
- 在linux字型下的顯示問題及幾種解決辦法Linux
- 解決json顯示日期帶T的問題。JSON
- JSP顯示中文問題的解決方案(轉)JS
- HPUX下,解決xmanager的顯示亂碼問題UX
- Vue 相容 ie9 的全面解決方案VueIE9
- JIVE在WINDOWS下的中文顯示問題的解決Windows
- Java解決Itext pdf中文不顯示問題Java
- pyecharts地圖功能,並解決顯示不全或只顯示南海諸島問題解決Echarts地圖
- 解決windows8無法全屏顯示的問題Windows
- 解決Raize日曆控制元件顯示的問題AI控制元件
- 解決Xmanager連線HPUX顯示亂碼的問題UX
- ORACLE中科學計數法顯示問題的解決Oracle
- vue渲染時閃爍{{}}的問題及解決方法Vue
- Linux下jdk1.5的安裝及中文顯示問題解決方案(轉)LinuxJDK
- 成功解決github無法顯示圖片問題Github
- LINUX SSH顯示中文亂碼問題解決Linux
- archlinux下wps顯示問題解決方法Linux
- 解決vs2010下不能建立專案及檔案的問題
- 【菜鳥學安卓】- TextView 顯示Html 一 解決圖片顯示不了的小問題安卓TextViewHTML
- IOS下圖片不能顯示問題的解決辦法iOS
- 解決在PUTTY下Linux顯示亂碼的問題Linux
- 解決arcgis for android中feature不顯示的問題Android
- 【問題&解決】手機網頁Html程式碼實現(解決顯示頁面很小的問題)網頁HTML
- AD9中元件無法顯示的問題解決元件
- 解決RAW在SQLPLUS上無法顯示的問題SQL
- 解決win7下面圖示顯示不正常的問題Win7
- vue-element-admin 解決壓縮打包之後背景圖片不顯示問題Vue
- 解決macOS新建txt文件在Windows下不換行問題MacWindows
- vue使用iview Timeline 時間軸不顯示渲染的效果問題解決辦法VueView