2013-10-14 23 views
1

我正在处理嵌入式表单,我正在使用条带进行在线支付,并使用它们的API调用此表单。条纹 - 更改iframe输入的placholders

我想改变投入的占位符,因为在爱尔兰,它们与美国的直接不同。

我们已经有了:

<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”,“城市/城市”); [] 它看起来像它没有找到对象作为#line_1,它在iframe中,也许这是造成问题。 –

+1

哦,我明白了,也许这个? :http://stackoverflow.com/questions/364952/jquery-javascript-accessing-contents-of-an-iframe – pbenard

+0

谢谢!这就是答案,但由于安全浏览器的原因,由于Stripe处于不同的域,所以它不适用于我。 –

1

您将无法修改由于同源策略导致的条带元素iframe。

但是,在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 
});