【问题标题】:Javascript manipulates order form's valueJavascript 操纵订单的价值
【发布时间】:2012-05-18 10:50:31
【问题描述】:

我目前正在创建一个订单。但是,我一直停留在获得的价值上。这是一个产品订单,我想显示价格并根据用户的选择计算数量。

例如,我有一个产品数量下拉列表,所以当用户选择一种产品时,价格 div 将显示一个值,如果用户选择 0,价格 div 将显示 $0。问题出在哪里?

var productValue = document.getElementById("e_Product");
var productQuantity = document.getElementById("e_Quantity");
var stringValue = productValue.options[productValue.selectedIndex].text;

if (stringValue == "Product Name" && productQuantity == 1) 
{
    var singleValue = "$800.00";
    $('#e_Price').val(singleValue);
}
else
{
    var singleValue1 = "$0.00";
    $('#e_Price').val(singleValue1);
}

当我在 if 语句中设置两个条件时,整个函数就不再起作用了。另外,当我从 1 到 0 选择产品数量时,表单的价格字段没有更新数字,我是否错过了下拉列表的内容?

【问题讨论】:

  • 你能发布你的html吗?
  • productQuantity 是一个 DOM 元素,当您与1 比较时,它与与true 比较时相同,在这种情况下,它似乎总是true。还有为什么要像这样混合 jQuery 和 Javascript?看起来很混乱,你最终不得不记住什么是 jQuery 元素和什么是原生 DOM 元素。
  • 我怎样才能将一个有点改变的事件设置到一个可以满足我需求的下拉列表中?嗯,对于在输入字段中输出值,jquery方式更简单。

标签: javascript jquery forms controls


【解决方案1】:

您应该使用事件处理程序来更新字段:

$("#e_Product").change(function(){
   var val = $(this).val();
   var quan = $("#e_Quantity").val();
   if (val == "Product Name" && quan == 1)
     var singleValue = "$800.00";
     $('#e_Price').text(singleValue); // if e_Price is a div tag you should use text() instead of val() 
   }
   else
   {
     var singleValue1 = "$0.00";
     $('#e_Price').text(singleValue1);
   }
})

【讨论】:

  • “e_Price”是表单的输入字段。我必须使用 val(),这就是为什么我设置了这么多变量...是否可以使用其他函数来输出输入字段中的值?听起来这是另一个问题。非常感谢您的回答。
  • 啊,我不这么认为,它是来自一个cms的表单创建者......表单是由xsl生成的。无论如何我会继续努力,谢谢大家!!!
猜你喜欢
  • 1970-01-01
  • 2014-03-29
  • 2021-03-20
  • 1970-01-01
  • 1970-01-01
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多