add support for attr prefixing on custom field names
This commit is contained in:
parent
7723f64cf9
commit
aaeaeba4ee
2
jslib
2
jslib
|
@ -1 +1 @@
|
|||
Subproject commit fa65b5637b5cd2e93b5d886584d6876c2c5eb571
|
||||
Subproject commit 50d242e53a4b553a6cb3575945a84812eda75b1d
|
|
@ -870,6 +870,24 @@ export default class AutofillService implements AutofillServiceInterface {
|
|||
|
||||
private findMatchingFieldIndex(field: AutofillField, names: string[]): number {
|
||||
for (let i = 0; i < names.length; i++) {
|
||||
if (names[i].indexOf('=') > -1) {
|
||||
if (this.fieldPropertyIsPrefixMatch(field, 'htmlID', names[i], 'id')) {
|
||||
return i;
|
||||
}
|
||||
if (this.fieldPropertyIsPrefixMatch(field, 'htmlName', names[i], 'name')) {
|
||||
return i;
|
||||
}
|
||||
if (this.fieldPropertyIsPrefixMatch(field, 'label-tag', names[i], 'label')) {
|
||||
return i;
|
||||
}
|
||||
if (this.fieldPropertyIsPrefixMatch(field, 'label-aria', names[i], 'label')) {
|
||||
return i;
|
||||
}
|
||||
if (this.fieldPropertyIsPrefixMatch(field, 'placeholder', names[i], 'placeholder')) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.fieldPropertyIsMatch(field, 'htmlID', names[i])) {
|
||||
return i;
|
||||
}
|
||||
|
@ -890,6 +908,16 @@ export default class AutofillService implements AutofillServiceInterface {
|
|||
return -1;
|
||||
}
|
||||
|
||||
private fieldPropertyIsPrefixMatch(field: any, property: string, name: string, prefix: string,
|
||||
separator = '='): boolean {
|
||||
if (name.indexOf(prefix + separator) === 0) {
|
||||
const sepIndex = name.indexOf(separator);
|
||||
const val = name.substring(sepIndex + 1);
|
||||
return val != null && this.fieldPropertyIsMatch(field, property, val);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private fieldPropertyIsMatch(field: any, property: string, name: string): boolean {
|
||||
let fieldVal = field[property] as string;
|
||||
if (!this.hasValue(fieldVal)) {
|
||||
|
|
Loading…
Reference in New Issue