JS:结合.change用于2个不同的选择器

时间:2014-08-22 23:13:37

标签: javascript jquery html javascript-events

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

$("#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");
});
用户通过下拉列表选择

annocoefficiente是与option值相关联的下拉列表的参数,importoinput type="number"中输入{1}}。

我想看看我创建的the fiddle将清除一切。 :)

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

我尝试使用$(“#anno,#immorto”),但只有在我更改了两个值时才打印结果..虽然显示了NaN

1 个答案:

答案 0 :(得分:0)

试试这个: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");
}