javascript 使用javascript根据另一个表单值的onChange更改一个表单值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5053104/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-25 15:47:27  来源:igfitidea点击:

Changing one form value based on onChange of another with javascript

javascriptformspaypalonchange

提问by Andrew Samuelsen

I can't seem to get this function to work out. I'm trying to change the "business" input value of my form based on an amount selected in the "amount" dropdown. What am I missing!!! I've been trying this for an hour.

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

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

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

Ok. The next step. I have about 100 of these forms on a page. Instead of creating one for each form, I'd like to have one script that changes based on which form is being changed with "onChange". Each of the forms on the page have values of the same name (but not ID) (they are for paypal). I think it will be ok if I can change the"formname" in the following: "document.forms['formname']" based on a variable populated by something like chPy("formname") etc..... I can't seem to get that to work either.

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

回答by amit_g

Removing the form reference would take care of both of your items.

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

 <script type="text/javascript">
  function chPy(oSelect)
  {
  var businessvar = "[email protected]";
  if (oSelect.form.amount.value > 11){
  businessvar = "[email protected]"
  }
  oSelect.form.business.value = businessvar;
  }
  </script>

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

回答by warpech

Problem is that you are using a number as form name.

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

Add some letters to the name and it will work:

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

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

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

回答by ?ime Vidas

HTML:

HTML:

<form name="form5">
    <select name="amount">
        <option value="na">Select</option>
        <option value="1.00"></option>
        <option value="5.00"></option>
        <option value="10.00"></option>
        <option value="15.00"></option>
        <option value="20.00"></option>
        <option value="25.00"></option>
    </select> 
    <input type="text" name="business">
</form>

JavaScript:

JavaScript:

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

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

Live demo:http://jsfiddle.net/Fx7zh/

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



For multiple forms, you can use this JavaScript code:

对于多个表单,您可以使用以下 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';
    }
}

Live demo:http://jsfiddle.net/Fx7zh/2/

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