Javascript下拉菜单根据用户选择版本2更新价格
Javascript dropdown updates the price based on the users selection version 2?
我需要一些帮助来更新基于下拉选择的页面价格。
这是我们在一些帮助下写出来的代码:
var price = new Array('','$2.00','$45.00','$60.00');
$(function(){
$('select[name=material]').change(function(){
document.getElementById('pprice').innerHTML = price[$(this).val()];
});
// Trigger on dom ready
$('select[name=material]').change();
});
如果我的下拉菜单的结构是这样的:
<select name="material">
<option value="">-- Please Select --</option>
<option value="1">Wood</option>
<option value="2">Plastic</option>
<option value="3">Metal</option>
</select>
但是如果由于某种原因下拉菜单是这样的:
<select name="material">
<option value="">-- Please Select --</option>
<option value="3">Metal</option>
<option value="4">Cloth</option>
<option value="5">UPVC</option>
</select>
将不起作用(因为值选项不是1,2,3)。该值是材质的id。希望这是有意义的,有人可以帮助我得到这个工作。
谢谢恐龙
您正在根据值更改价格,并将其用作价格数组中的项目…但是你的价格数组只有4个值。在你的第二次选择中,你要求它返回price[4]或price[5],这会导致一个错误。
改变:
var price = new Array('','$2.00','$45.00','$60.00');
:
var price = new Array('','$2.00','$45.00','$60.00','$cloth price','$upvc price');
小提琴。
EDIT:更新方法(对现有布局/逻辑的更改最小)
$(function() {
$('select[name=material]').change(function() {
var price = $(this).val().split("_");
$("#id").html(price[0]);
$("#price").html("$" + price[1]);
});
});
HTML(将价格添加到每个选项值中,在JS中以"_"分割)
<select name="material">
<option value="0_0">-- Please Select --</option>
<option value="1_2">Wood</option>
<option value="2_2">Plastic</option>
<option value="3_45">Metal</option>
</select>
<select name="material">
<option value="0_0">-- Please Select --</option>
<option value="3_60">Metal</option>
<option value="4_50">Cloth</option>
<option value="5_80">UPVC</option>
</select>
<div>ID: <span id="id">TBD</span><br />Price: <span id="price">TBD</span></div>
使用<select>
的selectedIndex
来选择价格:
var price = new Array('','$2.00','$45.00','$60.00');
$(function(){
$('select[name=material]').change(function(){
document.getElementById('pprice').innerHTML = price[this.selectedIndex];
});
// Trigger on dom ready
$('select[name=material]').change();
});
或者,对于price
使用对象而不是数组:
var price = {
"4": "$2.00",
"5": "$45.00",
"6": "$60.00"
};
$(function(){
$('select[name=material]').change(function(){
document.getElementById('pprice').innerHTML = price[$(this).val()];
});
// Trigger on dom ready
$('select[name=material]').change();
});
Update:这是一个更新代码的jsfiddle,使您的单个价格数组工作:
你的价格数组长度为4,从索引0开始。
第一个选项的值必须为'0',否则它将从价格数组返回未定义:
<select name="material">
<option value="0">-- Please Select --</option>
<option value="1">Wood</option>
<option value="2">Plastic</option>
<option value="3">Metal</option>
</select>
当你设置你的选项值从3到5,你试图访问不存在的索引以外的价格数组
相关文章:
- Phonegap应用程序数据库版本在更新后保留
- Flash Pro CC HTML5画布&CreateJS-如何将lib文件更新到最新版本
- 更新的EaselJS版本打破了动画
- 当 phonegap 版本从 1.5 更新到 1.9 时,android 中的 Phonegap 应用程序会导致强制关闭
- Drupal - Jquery 更新版本与灯箱冲突
- Sinch 视频通话不适用于移动设备上浏览器的更新版本
- 更新现有包的依赖项版本
- Cordova应用程序自动同步/更新Web内容(.js文件),如果更新版本可用,否则使用缓存版本
- AngularJS : 未捕获错误: [$injector:modulerr] 使用 angularJS 的更新版本时
- 如何允许 ActiveX 对象在 JavaScript 中实例化之前安装更新的版本
- 如何确保浏览器在更新后加载文件的最新版本
- 如何在chrome应用程序中动态更新版本号
- Google Chrome扩展错误:需要开发人员频道或更新版本
- Fancyupload的更新替代或更新版本
- 控制台.log仅显示打印对象的更新版本
- 如何检测IE“更新版本”
- Angular 2 JS (RC4及更新版本)中的嵌套表单
- NPM git仓库没有更新版本
- 网页浏览器不显示文本文件的更新版本,但打开新浏览器显示正确的文件
- 在PrimeFaces 5.2及更新版本中,图表扩展器属性的替代方法是什么?