使用javascript基于onChange更改一个表单值

时间:2011-02-19 19:45:58

标签: javascript forms paypal onchange

我似乎无法使用此功能。我正在尝试根据“金额”下拉列表中选择的金额更改表单的“业务”输入值。我错过了什么!我已经尝试了一个小时。

  <script type="text/javascript">
  function chPy()
  {
  var businessvar = "paypals@ramatico.com";
  if (document.forms['5'].amount.value > 11){
  businessvar = "paypall@ramatico.com"
  }
  document.forms['5'].business.value = businessvar;
  }
  </script>

  <form name="5">
  <select name="amount" OnChange="chPy()">
      <option value="na">Select</option>
      <option value="1.00">$1</option>
      <option value="5.00">$5</option>
      <option value="10.00">$10</option>
      <option value="15.00">$15</option>
      <option value="20.00">$20</option>
      <option value="25.00">$25</option>
  </select> 
  <input name="business" type="text" value="">
  </form>

确定。下一步。我在页面上有大约100个这样的表单。我不想为每个表单创建一个脚本,而是希望根据使用“onChange”更改哪个表单来更改一个脚本。页面上的每个表单都具有相同名称(但不是ID)的值(它们用于paypal)。我想如果我可以更改下面的“formname”就可以了:“document.forms ['formname']”基于一个由chPy(“formname”)等填充的变量.....我可以似乎还能让它发挥作用。

3 个答案:

答案 0 :(得分:3)

删除表单引用会处理您的两个项目。

 <script type="text/javascript">
  function chPy(oSelect)
  {
  var businessvar = "paypals@ramatico.com";
  if (oSelect.form.amount.value > 11){
  businessvar = "paypall@ramatico.com"
  }
  oSelect.form.business.value = businessvar;
  }
  </script>

  <form name="5">
  <select name="amount" OnChange="chPy(this)">
      <option value="na">Select</option>
      <option value="1.00">$1</option>
      <option value="5.00">$5</option>
      <option value="10.00">$10</option>
      <option value="15.00">$15</option>
      <option value="20.00">$20</option>
      <option value="25.00">$25</option>
  </select> 
  <input name="business" type="text" value="">
  </form>

答案 1 :(得分:0)

问题是您使用数字作为表单名称。

在名称中添加一些字母,它将起作用:

<script type="text/javascript">
  function chPy()
  {
  var businessvar = "paypals@XYZ.com";
  if (document.forms['form5'].amount.value > 11){
  businessvar = "paypall@XYZ.com"
  }
  document.forms['form5'].business.value = businessvar;
  }
  </script>

  <form name="form5">
  <select name="amount" OnChange="chPy()">
      <option value="na">Select</option>
      <option value="1.00">$1</option>
      <option value="5.00">$5</option>
      <option value="10.00">$10</option>
      <option value="15.00">$15</option>
      <option value="20.00">$20</option>
      <option value="25.00">$25</option>
  </select> 
  <input name="business" type="text" value="">
  </form>

答案 2 :(得分:0)

HTML:

<form name="form5">
    <select name="amount">
        <option value="na">Select</option>
        <option value="1.00">$1</option>
        <option value="5.00">$5</option>
        <option value="10.00">$10</option>
        <option value="15.00">$15</option>
        <option value="20.00">$20</option>
        <option value="25.00">$25</option>
    </select> 
    <input type="text" name="business">
</form>

JavaScript的:

var form5 = document.forms['form5'];

form5.amount.onchange = function() {
    form5.business.value =
        (this.value > 11 ? 'paypall' : 'paypals') + '@ramatico.com';
}

现场演示: http://jsfiddle.net/Fx7zh/


对于多个表单,您可以使用以下JavaScript代码:

for (var i = 0, l = document.forms.length; i < l; i++) {
    document.forms[i].amount.onchange = function(i) {
        this.form.business.value =
            (this.value > 11 ? 'paypall' : 'paypals') + '@ramatico.com';
    }
}

现场演示: http://jsfiddle.net/Fx7zh/2/