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

Using custom attribute jQuery selectors with dropdown select (take 2)

本文关键字:选择器 jQuery 自定义属性 选择      更新时间:2023-09-26

这个问题让我想砸了我的电脑。我有一个表单,我想从表单上的选择中计算值。我这里有两个jsfiddle,我真的很想拥有它,这样我就可以进行选择,然后点击计算。但我甚至无法点击表单进行操作。因此,另一把小提琴使用了变化和键控功能。表格上也有一个问题。如果您将第一个选择更改为"选项2",您会看到该选择的值最终为"1.379999999996",而不是"1.38"。为什么会发生这种情况?

Fiddle with click功能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 );
});

摆弄更改和键控功能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 );
});

您的选择器$(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