【问题标题】:Changing one form value based on onChange of another with javascript使用javascript根据另一个表单的onChange更改一个表单值
【发布时间】:2011-02-19 19:45:58
【问题描述】:

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

  <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”)等填充的变量......我可以似乎也无法正常工作。

【问题讨论】:

    标签: javascript forms paypal onchange


    【解决方案1】:

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

     <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>
    

    【讨论】:

    • 我比我更喜欢你的回答:)
    • 非常感谢。我是 javascript 的新手,我总是可以非常接近,但必须来这里使它工作。感谢您和其他所有人的帮助!
    • 什么是oSelect?我可以将其更改为任何内容吗?为什么一个字母要大写....?感谢您帮助我了解这一点!
    • 那只是一个参数名。你可以随意称呼它。确保在任何地方更改名称。它表示触发事件的元素(作为 this 传递),在这种情况下,选择命名为 amount。
    【解决方案2】:

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

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

    <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>
    

    【讨论】:

      【解决方案3】:

      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/

      【讨论】:

      • 嘿,我尝试在我的脚本中实现它......它会首先选择正确的值,但如果选择发生变化,它不会改变它。谢谢
      • 我的错我实际上只输入了一部分。这就是我要做什么...我尝试将您的某些方面输入其中,但无法使其正常工作哈哈! &lt;script type="text/javascript"&gt; function combAction1(frm) { var formperson = frm.formperson.value; var formaction = frm.formaction.value; frm.item_name.value = formperson + ", " + formaction; } function chPy(oSelect) { var businessvar = "paypals@ramatico.com"; if (oSelect.form.amount.value &gt; 11){ businessvar = "paypall@ramatico.com" } oSelect.form.business.value = businessvar; } &lt;/script&gt;
      • @Andypandy 该代码与我的代码没有任何关系。什么意思?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 2021-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多