解决chrome浏览器的input[type=date]的格式问题

Posted lisicn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决chrome浏览器的input[type=date]的格式问题相关的知识,希望对你有一定的参考价值。

问题

解决chrome浏览器的input[type=date]的格式,在chrome和edg中情况基本类似,edg甚至更差,解决办法:修改type为text,使用第三方日期选择器

参考:

<link rel="stylesheet" href=\'datetimepicker/jquery.datetimepicker.css\'>
<script type="text/javascript" src=\'datetimepicker/jquery.datetimepicker.full.js"></script>
<script>
$("#id_date").datetimepicker(timepicker:false,format: "Y-m-d",);
</script>

React中禁止chrome填充密码表单

当 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}/>

    ... ) }

 

以上是关于解决chrome浏览器的input[type=date]的格式问题的主要内容,如果未能解决你的问题,请参考以下文章

React中禁止chrome填充密码表单

React中禁止chrome填充密码表单

如何在 chrome 中更改 <input type=date> 的外观

React中禁止chrome填充表单

在iPhone手机上写了input type="date" 显示不出来的原因

Chrome 浏览器的输入范围滑块进度