为两个不同的选择器组合.change

Combine .change for 2 different selectors

本文关键字:选择器 组合 change 两个      更新时间:2023-09-26

我有这个脚本,计算一个涉及3个变量的操作的结果(totale): coefficiente,这取决于anno,和importo

$("#anno").change(function () {
    var anno = $("option:selected", this);
    var importo = document.getElementById('importo').value;
    coefficiente = anno.attr("coefficiente");
    var totale = ((importo * coefficiente) / 1936.27).toFixed(0);
    $("#risultato").html("circa " + totale + " EUR");
});

anno由用户通过下拉列表选择,coefficiente是与option值链接的下拉列表中的一个参数,importoinput type="number"中键入。

我想看看,我创建的小提琴将清除一切。:)

我想要的是,当我改变在input type="number"中键入的数字时,结果也会打印$("#risultato").html(...),而不仅仅在下拉列表中选择option

我尝试了$("#anno, #importo"),但结果只打印,如果我改变两个值。尽管显示了NaN !

试试:http://jsfiddle.net/roc6dj67/7/

从技术上讲,您希望将coefficiente添加为data-coefficiente并像这样找到它,因为coefficiente不是有效的HTML属性:

var anno = $("#anno");
var importo = $('#importo');
anno.on('change', changeFunc);
importo.on('keyup', changeFunc);
function changeFunc(event) {
    var coefficiente = anno.find('option:selected').data("coefficiente"); // use .data() not .attr()
    var totale = ((importo.val() * coefficiente) / 1936.27).toFixed(0);
    $("#risultato").html("circa " + totale + " EUR");
}