使用带有下拉选择的自定义属性jQuery选择器(取2)

时间:2013-08-20 04:01:48

标签: javascript jquery forms jquery-selectors

这个问题让我想要粉碎我的电脑。我有一个表单,我想从表单上的选择中计算值。我在这里有两个jsfiddles,我真的很想拥有它,所以我可以选择,然后点击计算。但我甚至无法通过点击获得表格。所以另一个小提琴用于改变和键盘功能。该表格也存在问题。如果您将第一个选择更改为"选项2",您将看到该选择的值最终为" 1.379999999996"而不是" 1.38"。为什么会这样?

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 );
});

1 个答案:

答案 0 :(得分:0)

您的选择器$(this).find("option:selected")错误,因为this此处指向#submit按钮,因此您需要使用其ID #style

找出select元素
$('#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