簡體   English   中英

使用占位符

[英]Using placeholder for <asp:TextBox for IE 10 doesn't work

我在我的html代碼中有以下代碼:

<asp:TextBox ID="txtSearch" runat="server"  CssClass="input-xxlarge" type="text" Font-Size="10px" placeholder="Type Here" Height="20px" Width="100px"  ></asp:TextBox>

占位符未出現在頁面上。

我認為問題出在IE10上。

有什么方法可以在<asp:TextBox顯示占位符嗎?

在IE-10中這不是問題。 請按IE瀏覽器上的F12鍵,然后選擇瀏覽器模式: IE10文檔模式: 標准

我使用JavaScript代碼解決了這個問題,這非常簡單。

我想與您分享。您無需執行任何操作,只需使用此js即可。

var _debug = false;
var _placeholderSupport = function () {
var t = document.createElement("input");
t.type = "text";
return (typeof t.placeholder !== "undefined");
 }();

  window.onload = function () {
var arrInputs = document.getElementsByTagName("input");
var arrTextareas = document.getElementsByTagName("textarea");
var combinedArray = [];
for (var i = 0; i < arrInputs.length; i++)
    combinedArray.push(arrInputs[i]);
for (var i = 0; i < arrTextareas.length; i++)
    combinedArray.push(arrTextareas[i]);
for (var i = 0; i < combinedArray.length; i++) {
    var curInput = combinedArray[i];
    if (!curInput.type || curInput.type == "" || curInput.type == "text" || curInput.type == "textarea")
        HandlePlaceholder(curInput);
    else if (curInput.type == "password")
        ReplaceWithText(curInput);
}

if (!_placeholderSupport) {
    for (var i = 0; i < document.forms.length; i++) {
        var oForm = document.forms[i];
        if (oForm.attachEvent) {
            oForm.attachEvent("onsubmit", function () {
                PlaceholderFormSubmit(oForm);
            });
        }
        else if (oForm.addEventListener)
            oForm.addEventListener("submit", function () {
                PlaceholderFormSubmit(oForm);
            }, false);
    }
}
};

 function PlaceholderFormSubmit(oForm) {
for (var i = 0; i < oForm.elements.length; i++) {
    var curElement = oForm.elements[i];
    HandlePlaceholderItemSubmit(curElement);
     }
  }

  function HandlePlaceholderItemSubmit(element) {
 if (element.name) {
    var curPlaceholder = element.getAttribute("placeholder");
    if (curPlaceholder && curPlaceholder.length > 0 && element.value === curPlaceholder) {
        element.value = "";
        window.setTimeout(function () {
            element.value = curPlaceholder;
        }, 100);
    }
 }
   }

      function ReplaceWithText(oPasswordTextbox) {
if (_placeholderSupport)
    return;
var oTextbox = document.createElement("input");
oTextbox.type = "text";
oTextbox.id = oPasswordTextbox.id;
oTextbox.name = oPasswordTextbox.name;
//oTextbox.style = oPasswordTextbox.style;
oTextbox.className = oPasswordTextbox.className;
for (var i = 0; i < oPasswordTextbox.attributes.length; i++) {
    var curName = oPasswordTextbox.attributes.item(i).nodeName;
    var curValue = oPasswordTextbox.attributes.item(i).nodeValue;
    if (curName !== "type" && curName !== "name") {
        oTextbox.setAttribute(curName, curValue);
    }
}

oTextbox.originalTextbox = oPasswordTextbox;
oPasswordTextbox.parentNode.replaceChild(oTextbox, oPasswordTextbox);
HandlePlaceholder(oTextbox);
if (!_placeholderSupport) {
    oPasswordTextbox.onblur = function () {
        if (this.dummyTextbox && this.value.length === 0) {
            this.parentNode.replaceChild(this.dummyTextbox, this);
        }
      };
    }
 }

   function HandlePlaceholder(oTextbox) {
    if (!_placeholderSupport) {
    var curPlaceholder = oTextbox.getAttribute("placeholder");
    if (curPlaceholder && curPlaceholder.length > 0) {
        Debug("Placeholder found for input box '" + oTextbox.name + "': " +    curPlaceholder);
        oTextbox.value = curPlaceholder;
        oTextbox.setAttribute("old_color", oTextbox.style.color);
        oTextbox.style.color = "#c0c0c0";
        oTextbox.onfocus = function () {
            var _this = this;
            if (this.originalTextbox) {
                _this = this.originalTextbox;
                _this.dummyTextbox = this;
                this.parentNode.replaceChild(this.originalTextbox, this);
                _this.focus();
            }
            Debug("input box '" + _this.name + "' focus");
            _this.style.color = _this.getAttribute("old_color");
            if (_this.value === curPlaceholder)
                _this.value = "";
        };
        oTextbox.onblur = function () {
            var _this = this;
            Debug("input box '" + _this.name + "' blur");
            if (_this.value === "") {
                _this.style.color = "#c0c0c0";
                _this.value = curPlaceholder;
            }
        };
    }
    else {
          Debug("input box '" + oTextbox.name + "' does not have placeholder attribute");
      }
     }  
    else {
      Debug("browser has native support for placeholder");
    }
 }

function Debug(msg) {
if (typeof _debug !== "undefined" && _debug) {
    var oConsole = document.getElementById("Console");
    if (!oConsole) {
        oConsole = document.createElement("div");
        oConsole.id = "Console";
        document.body.appendChild(oConsole);
    }
    oConsole.innerHTML += msg + "<br />";
    }
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM