2013-10-14 2 views
1

Я работаю над встроенной формой, я использую полосу для онлайн-платежей и используя их API для вызова этой формы.Stripe - изменить placholders входов iframe

Я хочу поменять место для ввода, потому что в Ирландии они прямо разные, чем в США.

У нас есть:

<div class="line_1"> 
     <input name="line_1" id="line_1" type="text" placeholder="City" autocompletetype="address-line1" required=""> 
    </div> 

Это часть кода Iframe.

Я звоню форму по щелчку действия:

StripeCheckout.open({ 
      key:   '50m3s3cr3tk3y', 
      amount:  0000, 
      currency: 'eur', 
      address: true, 
      image: '/someimage.png', 
      name:  'Product name', 
      description: 'Marketing speech', 
      panelLabel: 'Call to Action', 
      token:  token 
      }); 
jQuery("#line_1").attr("placeholder", "Town/City"); 

Это, кажется, не работает для меня, похоже, она даже не признает поля, такие как «line_1»

Что лучший способ добиться этого? Поскольку Stripe API не предоставляет его, с другой стороны, есть возможность создать собственную форму.

Спасибо, Адам

ответ

2

http://jsfiddle.net/cdDrB/

Я думаю, JQuery код заполнителем работает отлично:

jQuery("#line_1").attr("placeholder", "Town/City"); 

Итак: Может быть, есть ошибка с функцией StripeCheckout, или, вы должны изменить заполнитель перед вызовом этой функции ... (надеюсь, это полезно)

+0

спасибо за ваш ответ !! Да, код работает нормально, мой консольный журнал пока отображается встроенная форма: jQuery («# line_1»). Attr («placeholder», «Town/City»); [] Похоже, что объект не найден как # line_1, он находится в iframe, возможно, это вызывает проблемы. –

+1

О, о, я вижу, может быть, это? : http://stackoverflow.com/questions/364952/jquery-javascript-accessing-contents-of-an-iframe – pbenard

+0

спасибо !! это ответ, но он не работает для меня, поскольку Stripe находится в другом домене из-за причин браузера безопасности. –

1

Вы не сможете изменить содержимое iframe элемента Stripe из-за той же политики происхождения.

Однако в Stripe API есть недокументированный параметр-заполнитель, который может решить вашу проблему. Взгляните на этот пример:

var elements = stripe.elements(); 
var cardNumber = elements.create('cardNumber', {placeholder: '****-****-****'}); 
var cardExpiry = elements.create('cardExpiry'); 
var cardCvc = elements.create('cardCvc'); 

// you can also update the placeholder after the initialization 
cardNumber.update({placeholder: 'bla bla bla'}); 

cardNumber.mount($form.find('#card_number')[0]); 
cardExpiry.mount($form.find('#card_expiry')[0]); 
cardCvc.mount($form.find('#card_cvc')[0]); 


stripe.createToken(cardNumber).then(function(result){ 
    var token = result.error ? null : result.token; 
    // do something with the stripe token 
}); 
Смежные вопросы