覆盖braintree插入字段最大长度

时间:2019-05-01 19:50:44

标签: javascript angularjs braintree angular1.6

在最新的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

enter image description here

但是它们的最大长度为9个字符,甚至超过MM/YYYY

enter image description here

我尝试通过几种方法将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仍需要大量工作。

如何更改字段的最大长度?

0 个答案:

没有答案