IE9 javascript问题的占位符脚本

IE9 javascript问题的占位符脚本,javascript,internet-explorer-9,placeholder,Javascript,Internet Explorer 9,Placeholder,我有以下脚本,如果用户使用浏览器ie9,我们将修复有关ie9不支持占位符的已知问题: if (isIE9) { // ie9 // this is html5 placeholder fix for inputs, inputs with placeholder-no-fix class will be skipped(e.g: we need this for password fields) jQuery('input[place

我有以下脚本,如果用户使用浏览器ie9,我们将修复有关ie9不支持占位符的已知问题:

       if (isIE9) { // ie9
            // this is html5 placeholder fix for inputs, inputs with placeholder-no-fix class will be skipped(e.g: we need this for password fields)
            jQuery('input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)').each(function() {

                var input = jQuery(this);

                if (input.val() == '' && input.attr("placeholder") != '') {
                    input.addClass("placeholder").val(input.attr('placeholder'));
                }

                input.focus(function() {
                    if (input.val() == input.attr('placeholder')) {
                        input.val('');
                    }
                });

                input.blur(function() {
                    if (input.val() == '' || input.val() == input.attr('placeholder')) {
                        input.val(input.attr('placeholder'));
                    }
                });
            });
        }
当我在ie9中加载页面时,我看到电子邮件框的占位符,但密码框决定使用占位符,并使其看起来像是有人输入了一个值,如下所示:

我的标记如下:

<div class="form-group">
   <input id="EmailAddress" class="form-control" type="text" value="" placeholder="Please enter your email address" name="EmailAddress" data-val-required="Email Address is required" data-val="true" autocomplete="off" maxlength="320">
</div>
<div class="form-group">
   <input id="Password" class="form-control" type="Password" value="" placeholder="Password" name="Password" data-val-required="Password is required" data-val="true" autocomplete="off" maxlength="50">
</div>

有人能给我一些建议来帮助我解决这个问题吗

我还向password类添加了占位符no fix,但在ie9中查看时,password字段为空,不显示占位符。

您正在将password字段的值(.val())设置为字符串“password”,它将其视为密码并隐藏字符

我想作为一个卑鄙的黑客,你可以将输入类型设置为文本,直到他们聚焦该字段,然后将其设置为密码,直到该字段再次在blur上为空(如果他们的密码在其中,则将其设置为文本显然是不好的!)

您正在将密码字段的值(.val())设置为字符串“password”,它将该字符串视为密码并隐藏字符


我想作为一个卑鄙的黑客,你可以将输入类型设置为文本,直到他们聚焦该字段,然后将其设置为密码,直到该字段再次在blur上为空(如果他们的密码在其中,则将其设置为文本显然是不好的!)

我建议您使用一个额外的位置:绝对位置;div作为IE 9的占位符回退。只需显示/隐藏div onblur


使用value作为占位符将要求用户在填写字段之前删除所有内容,并且密码字段中肯定存在******问题。

我建议您使用额外的位置:绝对;div作为IE 9的占位符回退。只需显示/隐藏div onblur

使用value作为占位符将要求用户在填写字段之前删除所有内容,并且在password字段中肯定存在******问题