在最新的Braintree drop-in JS sdk (v3)中,您可以通过
覆盖样式和某些字段选项,例如placeholder
braintree.dropin.create({
authorization: 'CLIENT_AUTHORIZATION',
container: '#dropin-container',
card: {
overrides: {
fields: {
number: {
placeholder: 'Card Number',
formatInput: false // Turn off automatic formatting
}
}
}
}
}, /* ... */);
我需要更改字段的maxlength
,而不是样式或占位符。
由于某些原因,他们的下拉菜单将到期字段显示为MM/YY
:
但是它们的最大长度为9个字符,甚至超过MM/YYYY
:
我尝试通过几种方法将maxlength
更改为5
,但没有运气:
1)通过其SDK覆盖
(请注意,覆盖placeholder
可以,但是maxlength
无效):
overrides: {
fields: {
expirationDate: {
maxlength: 5
}
}
}
2)覆盖元素本身
let expDateField = $(`[data-braintree-name='expirationDate']`);
expDateField.attr('maxlength', 5);
3)然后,我意识到可能是因为它通过iFrame传输。因此,我尝试通过iFrame和:
定位let iFrame = document.getElementById('braintree-hosted-field-expirationDate');
let content = i.contentWindow.document;
结果错误:
未捕获的DOMException:阻止了具有来源的帧 访问跨域框架的结果为“ http://localhost:1337”。 在:1:25
此错误可能是有道理的,因为他们希望安全的https:
源仅用于处理iFrame数据。但是,即使如此,更改maxlength
仍需要大量工作。
如何更改字段的最大长度?