更改托管页面上的表单标签

时间:2014-02-02 03:26:30

标签: javascript

我正在使用Chargify在线销售一些订阅。

他们提供了托管页面,您可以在其中收集信息,从而在系统中创建订阅和客户。

这是我们的表单页面: https://exponential-finance.chargify.com/h/3373511/subscriptions/new

正如您所看到的,我们非常希望将这些字段标记为“结算地址”而不是“送货地址”。

唉,Chargify内部无法改变这些标签。但是,DO提供了在页面上加载javascript的功能。

据我所知,理论上可以使用脚本更改页面上的HTML。

我花了几个小时尝试在网上找到一些脚本,但没有人做这个工作。

以下是我想要更改的标签示例:

<p class="left">
  <label for="subscription_customer_attributes_address">*  Shipping Address 1</label><br />
  <input id="subscription_customer_attributes_address" name="subscription[customer_attributes]
[address]" size="30" type="text" />
</p>

有人可以指向一个脚本,允许我将标签文本从“运费”更改为“结算”这个字段,甚至更好,对于任何“运费”的实例?

2 个答案:

答案 0 :(得分:1)

<script>
  window.onload=function() {
   var lab = document.getElementsByTagName('label');
    for (i=0, l=lab.length;i<l;i++)
    {
     var old = lab[i].innerHTML;
     var news = old.replace(/shipping/i, 'Billing');
     document.getElementsByTagName('label')[i].innerHTML=news;
    }
  };
</script>

JSFiddle: http://jsfiddle.net/2YABH/3/

答案 1 :(得分:0)

修改 根据您的意见,您似乎需要更改所有6个实例。 您可以使用Javascript,jQuery或CSS轻松完成。

使用Javascript:

 //change a specific element
 document.getElementsByClassName('left')[0].firstElementChild.innerHTML = "* Billing Address";

 //to change ALL INSTANCES:
 for (var i = 0; i <= 5; i++) {
   document.getElementsByClassName('left')[i].firstElementChild.innerHTML = "* Billing Address";
}

Javascript JSFiddle

如果你有jQuery:

$(document).ready(function() {
  $('.left > label').text('* Billing Address');//nth-child(6) will refer to the 6th element
});

jQuery JSFiddle

.left > label {color:transparent}
.left > label:before {color:#000;content:"* Billing Address";}

CSS JSFiddle

希望这有帮助!