Я помню, как я видел способ <input type="password" />
, чтобы браузер не предлагал пользователю сохранить пароль. Но я рисую пустоту. Есть ли атрибут HTML или какой-либо трюк JavaScript, который будет делать это?
Тип ввода = пароль, не позволяйте браузеру помнить пароль
Ответ 1
Попробуйте использовать autocomplete="off"
. Не уверен, что каждый браузер поддерживает его. MSDN docs здесь.
EDIT: Примечание. Большинство браузеров отказались от поддержки этого атрибута. См. Автозаполнение = "off" совместим со всеми современными браузерами?
Это, возможно, что-то, что нужно оставить пользователю, а не дизайнеру веб-сайта.
Ответ 2
<input type="password" autocomplete="off" />
Я просто хотел бы добавить, что в качестве пользователя я думаю, что это очень раздражает и хлопот для преодоления. Я настоятельно рекомендую не использовать это, так как это, скорее всего, усугубит ваших пользователей.
Пароли уже не хранятся в MRU, и правильно настроенные общедоступные машины даже не будут сохранять имя пользователя.
Ответ 3
Я решил по-другому. Вы можете попробовать это.
<input id="passfld" type="text" autocomplete="off" />
<script type="text/javascript">
// Using jQuery
$(function(){
setTimeout(function(){
$("input#passfld").attr("type","password");
},10);
});
// or in pure javascript
window.onload=function(){
setTimeout(function(){
document.getElementById('passfld').type = 'password';
},10);
}
</script>
#another way
<script type="text/javascript">
function setAutoCompleteOFF(tm){
if(typeof tm =="undefined"){tm=10;}
try{
var inputs=$(".auto-complete-off,input[autocomplete=off]");
setTimeout(function(){
inputs.each(function(){
var old_value=$(this).attr("value");
var thisobj=$(this);
setTimeout(function(){
thisobj.removeClass("auto-complete-off").addClass("auto-complete-off-processed");
thisobj.val(old_value);
},tm);
});
},tm);
}catch(e){}
}
$(function(){
setAutoCompleteOFF();
});
</script>
//вам нужно добавить атрибут autocomplete = "off", или вы можете добавить класс .auto-complete-off в поле ввода и наслаждаться
Пример:
<input id="passfld" type="password" autocomplete="off" />
OR
<input id="passfld" class="auto-complete-off" type="password" />
Ответ 4
Я попробовал следующее и, похоже, работает в любом браузере:
<input id="passfld" type="text" autocomplete="off" />
<script type="text/javascript">
$(function(){
var passElem = $("input#passfld");
passElem.focus(function() {
passElem.prop("type", "password");
});
});
</script>
Этот способ намного безопаснее, чем использование методов тайм-аута, поскольку он гарантирует, что поле ввода даст пароль, когда пользователь сконцентрирует его.
Ответ 5
Что касается проблем безопасности, вот что консультант по безопасности скажет вам обо всём полевом выпуске (это из фактического независимого аудита безопасности):
HTML Autocomplete Enabled - поля пароля в HTML-формах имеют автозаполнение. Большинство браузеров имеют возможность запоминать учетные данные пользователя, введенные в формы HTML.
Относительный риск: низкий
Затронутые системы/устройства: o https:// *******/
Я также согласен, что это должно охватывать любое поле, содержащее действительно личные данные. Я чувствую, что все в порядке заставить человека всегда вводить информацию о своей кредитной карте, код CVC, пароли, имена пользователей и т.д., Когда этот сайт собирается получить доступ к чему-либо, что должно быть защищено [универсально или с соблюдением требований законодательства]. Например: формы покупки, банковские/кредитные сайты, налоговые сайты, медицинские данные, федеральные, ядерные и т.д. - не такие сайты, как переполнение стека или Facebook.
Другие типы сайтов - например, TimeStar Online для синхронизации и выхода из работы - это глупо, так как я всегда использую тот же компьютер/учетную запись на работе, что я не могу сохранить учетные данные на этом сайте - как ни странно, я могу на своем Android, но не на iPad. Даже общие ПК это было бы не так уж плохо, так как входы/выходы для кого-то еще действительно не делают ничего, кроме раздражения вашего супервизора. (Они должны войти и удалить ошибочные удары - просто выберите, чтобы не сохранять на публичных ПК).
Ответ 6
Вот лучший ответ, и самый легкий! Поместите дополнительное поле пароля перед полем input
и установите display:none
, чтобы при заполнении браузером он сделал это в input
, который вам неинтересен.
Измените это:
<input type="password" name="password" size="25" class="input" id="password" value="">
:
<input type="password" style="display:none;">
<input type="password" name="password" size="25" class="input" id="password" value="">
Ответ 7
Вы можете использовать JQuery, выбрать элемент по id:
$("input#Password").attr("autocomplete","off");
Или выберите элемент по типу:
$("input[type='password']").attr("autocomplete","off");
Или также:
Вы можете использовать чистый Javascript:
document.getElementById('Password').autocomplete = 'off';
Ответ 8
вы также можете использовать его, как показано ниже.
$('#Password').attr("autocomplete", "off");
setTimeout('$("#Password").val("");', 2000);
Ответ 9
В случае большинства основных браузеров, имеющих вход за пределами и не связанный с какой-либо формой, трюки браузера в мышление не было представления. В этом случае вам нужно будет использовать чистую JS-проверку для вашего входа в систему, а также потребуется шифрование ваших паролей.
До:
<form action="..."><input type="password"/></form>
После:
<input type="password"/>
Ответ 10
Я нашел следующие работы в Firefox и Chrome.
<form ... > <!-- more stuff -->
<input name="person" type="text" size=30 value="">
<input name="mypswd" type="password" size=6 value="" autocomplete="off">
<input name="userid" type="text" value="security" style="display:none">
<input name="passwd" type="password" value="faker" style="display:none">
<!-- more stuff --> </form>
Все они находятся в разделе форм. "человек" и "mypswd" - это то, что вы хотите, но браузер будет сохранять "userid" и "passwd" один раз, и никогда больше, так как они не меняются. Вы можете удалить поле "person", если вам это действительно не нужно. В этом случае все, что вам нужно, это поле "mypswd", которое может быть изменено каким-то образом известным пользователю вашей веб-страницы.
Ответ 11
Единственный способ, с помощью которого я могу запустить firefox, edge и Internet explorer, отключить автозаполнение, - добавить autocomplete = "false" в мой оператор формы, например:
<form action="postingpage.php" autocomplete="false" method="post">
и я должен добавить autocomplete = "off" к моему вводу формы и изменить тип на текст Like:
<input type="text" autocomplete="off">
Кажется, что этот HTML-код необходимо стандартизировать с помощью браузеров. тип формы = пароль следует пересмотреть, чтобы он переопределял настройки браузера. Единственная проблема, с которой я сталкиваюсь, это то, что я потерял свою маскировку ввода. Но на яркой стороне раздражающий "этот сайт небезопасен" не появляется в firefox.
для меня, это не очень важно, так как пользователь уже прошел аутентификацию и его имя пользователя и пароль меняют его имя
Ответ 12
Читайте также этот ответ, где он использует это простое решение, которое работает повсюду (см. также исправление для Safari mobile):
<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>