【问题标题】:Using custom attribute jQuery selectors with dropdown select (take 2)使用带有下拉选择的自定义属性 jQuery 选择器(采取 2)
【发布时间】:2013-08-22 00:22:10
【问题描述】:

这个问题让我想砸我的电脑。我有一个表格,我想从表格上的选择中计算值。我这里有两个 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 );
});

【问题讨论】:

    标签: javascript jquery forms jquery-selectors


    【解决方案1】:

    您的选择器$(this).find("option:selected") 错误,因为这里的this 指向#submit 按钮,因此您需要使用其id #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

    【讨论】:

    • 非常感谢。现在只是为了找出为什么值没有从data-price 属性正确返回
    • @Potatrick 你怎么说它没有返回正确的值
    • 在第一次选择时选择选项 2 并查看它返回的内容。这是正确值的一小部分。
    • 这是浮点计算的问题:( ...你可以看.toFixed()修复小数位数
    猜你喜欢
    • 2013-08-20
    • 1970-01-01
    • 2011-05-07
    • 2013-09-06
    • 1970-01-01
    • 2023-03-09
    • 2013-10-06
    • 2017-11-07
    • 2011-07-06
    相关资源
    最近更新 更多