React中禁止chrome填充表单

总结:在react中浏览器只会在第一次初始化dom树时将默认的用户名和密码渲染上(只有当页面中存在密码框时才会进行,所以react有如下解决方法)

当 input 的 type="password" 时,chrome浏览器会以 type="password" 为标识记住输入的用户名和密码,

如果chrome用户选择记住密码,chrome会把输入过的用户名、密码填充到表单中;

在React中,以下2中方法都不能解决问题:

1.在表单前增加2个input并隐藏

<input type="text" style="display:none"/>

<input type="password" style="display:none"/>

2.添加 autocomplete="off" 属性

<input type="password" autocomplete="off"/>

React不推崇Dom操作,通过state切换type的值来阻止浏览器的填充行为。


// 初始化state,组建初次渲染时type="text",浏览器不会对表单做填充行为
constructor(props) {
    super(props);
    this.state = {
       type: ‘text‘
    };
}

...

// 点击表单后,改变type
changeType = () => {
   this.setState({ type: ‘password‘ });
}

...

render() {
   return (    ...
      <Input  type={this.state.type} onClick={this.changeType}/>

    ...
   )
}

原文地址:https://www.cnblogs.com/nyhhd/p/12560503.html

时间: 2024-11-08 22:08:07

React中禁止chrome填充表单的相关文章

React中禁止chrome填充密码表单

当 input 的 type="password" 时,chrome浏览器会以 type="password" 为标识记住输入的用户名和密码, 如果chrome用户选择记住密码,chrome会把输入过的用户名.密码填充到表单中: 在React中,以下2中方法都不能解决问题: 1.在表单前增加2个input并隐藏 <input type="text" style="display:none"/> <input

php中限制ip段访问、禁止ip提交表单的代码

在需要禁止访问或提交表单的页面添加下面的代码进行判断就可以了. 注意:下边只是一个PHP限制IP的实例代码,如果您打算应用到CMS中,请自行修改. <?php /加IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR

去掉chrome记住密码后自动填充表单的黄色背景

chrome 表单自动填充后,input文本框的背景会变成黄色的,通过审查元素可以看到这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性,然后对其赋予以下样式: input : -webkit-autofill { background-color : #FAFFBD ; background-image : none ; color : #000 ; } 在有些情况下,这个黄色的背景会影响到我们界面的效果,尤其是在我们给input文本框

用chrome浏览器实现手动“自动填充表单”

原文地址:http://blog.csdn.net/ffb/article/details/38559655 现在的浏览器基本都有自动填充表单的功能,可以极大的节约我们填写一些常见表单,尤其是登录表单的填写时间. 但是现在随着用户需求的不断发展,很多网页都是使用js来实时进行表单提交的操作,这些操作可能根本不涉及实际的submit操作,所以不会被浏览器截获并记录,这个时候面对一些需要反复重复填写的常见的表格就很郁闷了. 不过还好,这种情况依然是可以实现手动"自动填充表单"的,方法就是利

Struts2中UI标签之表单标签介绍

1.在Struts2中UI标签的表单标签分为两种:form标签本身和单个表单标签. 2.Struts2表单标签包括:form.textfield.password.radio.checkbox.checkboxlist.select.doubleselect.combobox.optiontransferselect.optgroup.updownselect.textarea.hidden.file.label.submit.token.head.datepicker.reset.richte

前端开发入门到实战:css实现修改浏览器自动填充表单的默认样式

当表单中存在input[password]的时候,采用submit方式提交.就会触发浏览器自动填充表单.比如chrome自动填充后,淡×××输入框代替了背景样式,看起来有些怪异. ?那么如何通过css实现取消浏览器自动填充表单的默认样式呢? 解决方法一: 当input文本框是纯色背景的,可以对input:-webkit-autofill使用足够大的纯色内阴影来覆盖input输入框的×××背景:如: input:-webkit-autofill { -webkit-box-shadow: 0 0

web前端入门到实战:css实现修改浏览器自动填充表单的默认样式

当表单中存在input[password]的时候,采用submit方式提交.就会触发浏览器自动填充表单.比如chrome自动填充后,淡慌色输入框代替了背景样式,看起来有些怪异. 那么如何通过css实现取消浏览器自动填充表单的默认样式呢? 解决方法一: 当input文本框是纯色背景的,可以对input:-webkit-autofill使用足够大的纯色内阴影来覆盖input输入框的慌色背景:如: web前端开发学习Q-q-u-n: 767273102 ,分享学习的方法和需要注意的小细节,不停更新最新

在MySQL query browser中要导出execl表单

导出:  在MySQL query browser中要导出execl表单,只需要点击file,选择export execl就可以了(要先进入表单哦!). 导入: 数据库的数据太多一下导入有点麻烦,如何将excel的数据直接导入数据库呢? 第一步 另存为txt文档,名字最好为数据库的table名.  在这我们要保存问文本文件用制表符分割的那个,这样我们的数据就不会乱. 第二步 打开txt文档,点击另存为,修改编码,解决中文utf8.  这个时候的文件名必须和你要导入的table名称一样,否则在lo

html5中新增的form表单属性

html5中新增两个表单属性,分别autocomplete和novalidate属性 1.autocomplete属性 该属性用于控制自动完成功能的开启和关闭.可以设置表单或者input元素,有两个属性值,当设置为on时,启动该功能:当设置off时,关闭该功能.启用该功能后,当用户在自动完成域开始输入时,浏览器就会在该域中显示填写的选项.用户每提交一次,就会增加一个用于选择的选项 <!DOCTYPE html> <html> <head lang="en"