Javascript 更改表单onclick中的变量

Javascript 更改表单onclick中的变量,javascript,html,Javascript,Html,好了,伙计们。。。我已经为我的妻子建立了一个电子商务网站,她卖电子货币。。我遇到的问题与我使用的电子吸毒车有关。。。当从下拉框中选择瓶子尺寸时,我试图更改“金额”的隐藏值。。我希望“金额”值根据每个尺寸选择进行更改。。。我试过的都没用。。下面是片段 <form action="https://www.e-junkie.com/ecom/fgb.php?c=cart&cl=1&ejc=2" target="ej_ejc" method="POST"> <inp

好了,伙计们。。。我已经为我的妻子建立了一个电子商务网站,她卖电子货币。。我遇到的问题与我使用的电子吸毒车有关。。。当从下拉框中选择瓶子尺寸时,我试图更改“金额”的隐藏值。。我希望“金额”值根据每个尺寸选择进行更改。。。我试过的都没用。。下面是片段

<form action="https://www.e-junkie.com/ecom/fgb.php?c=cart&cl=1&ejc=2" target="ej_ejc" method="POST">


<input type="hidden" name="amount" value="12.00"/>
<input type="hidden" name="quantity" value="1"/>

Bottle Size: 
<input type="hidden" name="on1" value="Size"/>
<select name="os1" >
<option value="15">15 ML</option><option value="30">30 ML</option>   
<option value="50">50 ML</option>
</select><br>



<input type="hidden" name="shipping2" value="0.5">
<input type="hidden" name="handling" value="0.5">
<input type="hidden" name="tax" value="0.50"/>
<input type="hidden" name="return_url" value="http://www.e-junkie.com/"/>
<input type="hidden" name="currency_code" value="USD"/>

<input type="image" src="https://www.e-junkie.com/ej/ej_add_to_cart.gif" border="0" onClick="javascript:return EJEJC_lc(this.parentNode);">

瓶子尺寸:
15毫升30毫升
50毫升

我已经尝试将onClick与on1一起使用,但它不会改变amount值


我正在尝试将隐藏的“数量”值更改为12 20或30,具体取决于选择的大小。。。任何帮助都很好

您可以通过将
onchange
函数指定给
os1
选择框来更改
金额
字段的值。下面是一个javascript函数示例:

    function changePrice() {
      var size = document.getElementById('os1').value;
      var price = 12;

      switch(size){
        case '15':
          price = 12;
          break;
        case '30':
          price = 20;
          break;
        case '50':
          price = 30;
          break;
        }
      document.getElementById('amount').value = price;
     }
然后,您还需要为金额输入提供一个ID:

    <input type="hidden" name="amount" value="12.00" id="amount" />

但是-如果您正在处理付款问题,我建议您不要这样做。对于某些人来说,在浏览器中更改金额值并向支付流程提交任何他们想要的金额太容易了。至少在处理付款之前,您需要在服务器上验证瓶子大小和支付金额,以防止此类攻击。

这不是一个好的原始JavaScript,但它应该适合您

改变

<input type="hidden" name="amount" value="12.00"/>


和变化:

<select name="os1" >
<option value="15">15 ML</option><option value="30">30 ML</option>   
<option value="50">50 ML</option>
</select><br>

15毫升30毫升
50毫升


15毫升30毫升
50毫升

最后,改变:

<input type="image" src="https://www.e-junkie.com/ej/ej_add_to_cart.gif" border="0" onClick="javascript:return EJEJC_lc(this.parentNode);">


功能更改成本(){
var amountElm=document.getElementById(“金额”);
var selectList=document.getElementById(“os1”);
var selectedValue=selectList.options[selectList.selectedIndex].value;
如果(selectedValue==“15”){
amountElm.value“12.00”;
}else if(selectedValue==“30”){
amountElm.value“20.00”;
}else if(selectedValue==“50”){
amountElm.value“30.00”;
}
返回true;
}

您在这里使用的是JS框架吗<代码>javascript:返回ejc_lc(this.parentNode)从未见过EJEJC代码,因此无法真正提供帮助,但
onclick=“”
不应包含javascript:reallyright。。。但你可以引用一个函数。。。例如onClick=“myfunction()”是的,你甚至可以得到返回,这是我们过去在链接上阻塞的方式,例如
我必须说我非常同意“然而”,你永远不应该做我们都向你展示过的面向公众的系统。它应该是数据库表中有项目的大小,值是项目id,当单击“添加到购物篮”时,您应该搜索从数据库表中获取价格我理解您的担忧,但是,我们只是一家家庭企业。。在我们下订单之前,所有订单都会亲自审核。。尽管我们希望有一个更安全的替代方案。我将对数据库表进行一些研究
<select name="os1" >
<option value="15">15 ML</option><option value="30">30 ML</option>   
<option value="50">50 ML</option>
</select><br>
<select id="os1" name="os1" >
<option value="15">15 ML</option><option value="30">30 ML</option>   
<option value="50">50 ML</option>
</select><br>
<input type="image" src="https://www.e-junkie.com/ej/ej_add_to_cart.gif" border="0" onClick="javascript:return EJEJC_lc(this.parentNode);">
<input type="image" src="https://www.e-junkie.com/ej/ej_add_to_cart.gif" border="0" onClick="return changeCost();">
<script type="text/javascript">
function changeCost(){
  var amountElm = document.getElementById("amount");
  var selectList = document.getElementById("os1");
  var selectedValue = selectList .options[selectList .selectedIndex].value;
  if(selectedValue == "15"){
    amountElm.value "12.00";
  }else if(selectedValue == "30"){
    amountElm.value "20.00";
  }else if(selectedValue == "50"){
    amountElm.value "30.00";
  }
  return true;
}
</script>