我正在使用角度数据表,其中chrome自动使用电子邮件ID填充表格搜索。
我试图用空字符串覆盖搜索,但仍然 chrome 自动填充电子邮件 ID
dtTrigger: Subject<any> = new Subject();
dtOptions: DataTables.Settings = {};
this.dtOptions = {
pagingType: 'full_numbers',
pageLength: 10,
"dom": '<"top"f>rt<"bottom"lip><"clear">',
responsive: true,
search :{
search : " "
}
};
所以在这里搜索:"任何东西"它搜索表格中的任何内容,我尝试了空选项空字符串 chrome 自动填充电子邮件 ID。
如何强制Chrome不填写搜索输入中的电子邮件。
我在 Github 存储库中查看它是如何工作的。
我在此文档中发现了对jquery库的依赖:
http://l-lin.github.io/angular-datatables/#/getting-started
npm 安装 datatables.net --save
后来我在jquery库中搜索了输入字段。
/node_modules/datatables.net/js/jquery.dataTables.js
在4182 行中,我刚刚添加了一个属性autocomplete="off">
var input = '<input type="search" autocomplete="off" class="'+classes.sFilterInput+'"/>';
是的,这有点棘手,如果它有效,请告诉我在数据表 github 存储库中发出拉取请求。
更新
Chrome 有意忽略自动完成="关闭"和自动完成="false",因此请使用自动完成=">新搜索">
我没有在jquery.dataTables.min.js中添加相同的标记,并且可以肯定编译器正在使用.min.js文件
在
/node_modules/datatables.net/js/jquery.dataTables.min.js
'<input type="search" class="'+b.sFilterInput+'"/>'
并替换为:
'<input type="search" autocomplete="new-search" class="'+b.sFilterInput+'"/>'
如果您可以接受,这里是对IM使用的表的自定义搜索:
.html:
<form [formGroup]="searchTableForm" (ngSubmit)="onSubmit()">
<div class="tableSearchBox">
<input class="tableSearch" required formControlName="search">
</div>
</form>
.ts:
onSubmit(){
this.datatableElement.dtInstance.then((dtInstance: DataTables.Api)=>{
dtInstance.search(this.searchTableForm.value.search).draw()
})
}
每次表单值更改时我都会运行它