我的网站上有一个表单,它恰好有一个电子邮件字段,后跟一个密码字段。Safari 正在填写它们,就好像它们是登录表单一样,而实际上并非如此。之前在电子邮件输入中设置的值被删除,这是一个问题,并且 Safari 输入的用户名不是有效的电子邮件,这会破坏表单。
我尝试添加autocomplete="off",但 Safari 只是忽略它。我如何说服它这不是登录屏幕,并请停止干预?
编辑:我只是尝试移动表单的顺序以帮助 Safari 意识到它不是登录表单,它仍然填写它,即使密码字段在最顶部,电子邮件字段在最底部(下 5 个字段)。
我想禁用以前输入的文本的建议,<input type="text" list="stuff">它提供了一个下拉列表,可以通过<datalist>.
此行为会导致某些条目显示两次,有时在选择它们时会出现问题。
我试过<input type="text" autocomplete="off">- 在 Firefox 中,它的工作原理与我想要的一样,但 Chrome 也禁用了来自 的建议<datalist>。
即使涉及 JavaScript,我也很乐意提供任何解决方案,谢谢。
我需要一个不使用自动完成功能的文本输入字段 - 如果用户之前已经提交过表单,那么他以前提交的内容应该会在他再次输入表单时显示,即使他再次键入相同的内容.据我所知,有几种方法可以做到这一点:
1.<form autocomplete="off">
不过,我相信这是一个专有的标签,我不知道它是跨浏览器的兼容性如何
2.给输入字段一个随机的"名称"
甚至可以使用JS在提交之前将名称设置回预期值.但是,如果用户没有安装JS,则需要另一个带有名称的隐藏输入 - 另一方面的php代码会变得很乱.
你知道其他任何方式吗?这些方式之一是"接受"的方式吗?评论?
谢谢,
麻辣
我一直在帮助一些人使用他们的计算机并修理它们。其中一人问我有关在自动表单字段中存储密码的安全性的问题。我向他们展示了如何通过控制台中的简单 jQuery 调用检索密码的快速技巧。在处理某些网站时,我一直在尝试找出一种方法来防止使用此技巧来找出保存的密码是什么。
如果您不知道,要了解我在说什么,请尝试以下操作。
$('#password').val()并观察密码的显示。我想知道作为一名 Web 开发人员是否有某种方法可以阻止在我的网站上使用它,但仍然允许使用它来获取网站代码中字段的值。
谢谢。
编辑
来自 Facebook,自动填写登录信息(出于安全考虑,已涂黑)

然后在 jquerifying 页面并$jq('#pass').val()在控制台中运行后不更改任何内容(为了安全起见,密码被涂黑)

使用案例
用户1在公共计算机上,他们允许浏览器保存登录信息
用户 1 离开,用户 2 转到同一站点。浏览器自动填写登录信息
用户 2 运行命令并获取密码
我有一个登录表单,我需要强制自动完成关闭.我试过了
jQuery的: $('#login').attr("autocomplete", "off");
HTML: <input ... autocomplete="off">
使用Javascript: document.getElementById('myInputId').autocomplete = 'off';
当我单击登录输入框时,所有浏览器都会显示一个下拉列表
FF, Chrome, IE..
注意这适用于之前已保存密码信息的用户需要强制输入登录详细信息
我有一个输入字段用于在网页中输入密码:
<input name="txtPassword" type="text" class="input2" id="txtPassword" value="Password" onfocus="txtOnFocus2('txtPassword','Password');" onblur="txtOnBlur2('txtPassword','Password');" />
Run Code Online (Sandbox Code Playgroud)
在初始状态下,用户应将"密码"作为初始值读取,当他开始输入密码时,该字段应更改为键入密码.此外,当他将其设置为空白或初始值时,该字段应将类型更改为"文本"并显示密码.
我编写了代码,让它可以在Firefox,Chrome和Safari上运行,并且不会在IE 8上将类型更改为密码.
这是我通过编辑现有功能代码制作的js代码:
function txtOnFocus2(elementId, defaultText)
{
if (document.getElementById(elementId).value == defaultText)
{
document.getElementById(elementId).value = "";
document.getElementById(elementId).type = "password";
}
}
function txtOnBlur2(elementId, defaultText)
{
var textValue = document.getElementById(elementId).value;
if (textValue == defaultText || textValue.length == 0)
{
document.getElementById(elementId).type = "text";
document.getElementById(elementId).value = defaultText;
}
}
Run Code Online (Sandbox Code Playgroud)
这在Firefox,Chrome和Safari中运行良好,但不会改变IE 8上的字段类型.
我在可以创建新用户的视图中遇到问题。文本框中有默认值,我不知道如何清除它们。
/ edit寄存器模型如下所示:
public class RegisterModel
{
[Required(ErrorMessage = "*")]
[Display(Name = "Naam")]
public string UserName { get; set; }
[Required(ErrorMessage = "*")]
[Display(Name = "E-mailadres")]
public string Email { get; set; }
[Required(ErrorMessage = "*")]
[StringLength(100, ErrorMessage = "Het {0} moet op zijn minst {2} tekens lang zijn.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "wachtwoord")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Bevestig wachtwoord")]
[Compare("Password", ErrorMessage = "De twee wachtwoorden komen niet overeen.")]
public string …Run Code Online (Sandbox Code Playgroud) 这已经困扰了我一段时间,我想知道如何在代码中防止它.我正在使用safari测试我的代码,我有很多表单,当我输入以相同字母开头的东西时,safari会把这个愚蠢的酒吧放进去.我想知道是否可以预防.

谢谢您的帮助!
html ×7
forms ×4
javascript ×4
autocomplete ×3
jquery ×3
browser ×1
c# ×1
console ×1
html-input ×1
input ×1
php ×1
razor ×1
safari ×1
security ×1