2013-08-20 59 views
0

这个问题正在让我想要粉碎我的电脑。我有一个表单,我想计算表单上的选择值。我在这里有两个jsfiddles,我真的很想拥有它,所以我可以做出选择,然后点击计算。但我甚至无法通过单击来获取表单。所以另一个小提琴使用变化和键盘功能。这种形式也存在问题。如果您将第一个选择更改为“选项2”,则会看到该选择的值最终为“1.379999999996”,而不是“1.38”。这是为什么发生?使用自定义属性jQuery选择器与下拉选择(拿2)

Fiddle with click function JS:

$('#submit').click(function(){ 
    var price=$(this).find("option:selected").attr('data-price');  
    var ink=$('#ink').val(); 
    var loc1=$('#loc1').val(); 
    var res= price*1 + ink*1 + loc1*1 ; 
    $('#bleh').val(res || 0); 
}); 

Fiddle with change and keyup functions JS:

$('#ink, #loc1, .sel').on('keyup change',function(){ 
    var price=$('option:selected', this).attr('data-price'); 
    var ink=$('#ink').val(); 
    var loc1=$('#loc1').val(); 
     var res= price*1 + ink*1 + loc1*1 ; 
    $('#bleh').val(res || 0); 
}); 

回答

0

你选择$(this).find("option:selected")是错误的,因为this这里指向#submit按钮,这时就需要通过找出选择元素其编号#style

$('#submit').click(function(){ 
    var price=$('#style').find("option:selected").attr('data-price');  
    var ink=$('#ink').val(); 
    var loc1=$('#loc1').val(); 
    var res= price*1 + ink*1 + loc1*1 ; 
    $('#bleh').val(res || 0); 
}); 

演示:Fiddle

+0

非常感谢您。现在,只是为了找出为什么值不能从'data-price'属性中正确返回 – Potatrick

+0

@Potatrick你怎么说它没有返回正确的值 –

+0

在第一个选择上选择选项2并查看它返回的结果。这是正确值的一小部分。 – Potatrick