Javascript只能使用alert()和Debug模式。

8 浏览
0 Comments

Javascript只能使用alert()和Debug模式。

我在使用Chrome的自动填充字段时遇到了一个问题,Chrome无视'autocmplete="false|off|others"'。我还尝试了隐藏的伪字段,这个这个和其他一些方法。但似乎都没有起作用。这些字段会变成黄色并包含密码,因此我决定使用以下CSS规则来手动覆盖字段:

input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill 
{
    -webkit-box-shadow: 0 0 0 1000px white inset !important;
}

并使用以下javascript:

$(window).load(function() {
    console.log('Inside JQuery Window.Load...');
    if(document.querySelector("input:-webkit-autofill")!= null) {
        document.querySelector("input:-webkit-autofill").value = "";
    }
    console.log('Autofill value(Before Alert): ' + document.querySelector("input:-webkit-autofill"));
    alert('An alert...');
    if(document.querySelector("input:-webkit-autofill")!= null) {
        document.querySelector("input:-webkit-autofill").value = "";
    }
    console.log('Autofill value(After Alert): ' + document.querySelector("input:-webkit-autofill"));
});

来手动覆盖字段。以下是上述脚本的日志输出:

Inside JQuery Window.Load...
XXX:1324 Autofill value(Before Alert): null
XXX:1329 Autofill value(After Alert): [object HTMLInputElement]

当以调试模式运行时:

Inside JQuery Window.Load...
XXX:1324 Autofill value(Before Alert): [object HTMLInputElement]
XXX:1329 Autofill value(After Alert): [object HTMLInputElement]

我尝试了以下不同的组合:

$('input:-webkit-autofill').each(function(){...});
window.document.querySelector("input:-webkit-autofill");


这是出现问题的字段:


我做错了什么?

如何修复这个问题...

0
0 Comments

问题出现的原因是Google Chrome自动填充功能的影响。解决方法是通过在密码输入框中添加一个特定的CSS选择器来改变自动填充的颜色,并且在输入框中添加一个只读属性来避免自动填充。以下是解决方法的具体代码:

为了避免Google Chrome的自动填充功能,尝试以下方法:


Chrome不会对只读的填充进行自动填充。无论如何,您可以通过以下CSS代码将自动填充的颜色从黄色改为白色,针对一个具有名称属性并且值为"pass"的输入框:

input[name="pass"]:-webkit-autofill {
-webkit-text-fill-color: #838B95 !important;
webkit-box-shadow: 0 0 0px 1000px white inset !important; //background
}

一个提示是,为了避免其他不需要的CSS规则对其产生影响,最好使用尽可能具体的CSS选择器来选择元素(例如,bootstrap)。在这里生成的HTML是通过XSLT模板生成的。我想尽可能避免在那里进行更改,因为这将反映在整个应用程序中。通过在CSS规则中指定一个非常具体的CSS选择器,您可以解决这个问题。我们不使用bootstrap,对我来说很幸运。

希望以上解决方法对您有帮助。

0
0 Comments

JavaScript只能与alert()和Debug模式一起使用的问题出现的原因是,在给定的代码中,文本框没有提供type属性。解决方法是在代码中添加type="text"属性。

下面是给定代码的修改后的版本:

<input type="text" name="MY_REFNO" id="MY_REFNO" style="WIDTH: 180px" maxlength="16" onkeypress="upperAlphanumberHandler(event)" onblur="upperAlphanumberChecker('MY_REFNO')" value="" autocomplete="off">

通过添加type="text"属性,JavaScript将能够正常工作,并且可以与alert()和Debug模式一起使用。

0