X + Y给出HTMLObject(选择/选项)

时间:2018-11-22 12:11:41

标签: javascript jquery html html5

我正尝试添加2个总和,这些总和由选择选项获取。

我只想计算X + Y,但出现一个奇怪的错误。

代码:

$( document ).ready(function() {
    var id1 = $("#one").val();
    $("#final_value").val(id1);

    var id2 = $("#two").val();
    $("#final_value").val(id2);

    $("#final_value").val(this + parseInt(id1) + parseInt(id2));    
});

https://jsfiddle.net/xpvt214o/957709/

5 个答案:

答案 0 :(得分:4)

您的this元素中有#final_value。我还向您的代码中添加了一个change事件,因此它将在以下选项之一更改时更新:

$(document).ready(function() {
    $("#one, #two").on("change", () => {
        var id1 = $("#one").val();
        var id2 = $("#two").val();

        $("#final_value").val(parseInt(id1) + parseInt(id2));
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td>
    <select class="full-width select2" name="" id="one" data-placeholder="" >
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select>
</td>
<td>
    <select class="full-width select2" name="" id="two" data-placeholder="" >
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select>
</td>
<label for="final_value">Result:</label>
<input type="text" value="" id="final_value">

答案 1 :(得分:3)

最后一条语句中有一个this,将最后一行替换为:

$("#final_value").val(parseInt(id1) + parseInt(id2));

现在应该可以了。

答案 2 :(得分:3)

删除this值:

发件人:

$("#final_value").val(this + parseInt(id1) + parseInt(id2));

收件人:

$("#final_value").val(parseInt(id1) + parseInt(id2));

如果您将使用this,则函数将返回一个字符串,如下所示:

[object HTMLDocument]11

答案 3 :(得分:2)

我对加里·托马斯代码做了一些改动:

您可以像这样使用代替parseInt():

var id1 = +$("#one").val();
var id2 = +$("#two").val();

	$(document).ready(function() {
    $("#one, #two").on("change", () => {
        var id1 = +$("#one").val();
        var id2 = +$("#two").val();
        var total = id1+id2;
        $("#final_value").val(total);
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<td>
    <select class="full-width select2" name="" id="one" data-placeholder="" >
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select>
</td>
<td>
    <select class="full-width select2" name="" id="two" data-placeholder="" >
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select>
</td>
<label for="final_value">Result:</label>
<input type="text" value="" id="final_value">

答案 4 :(得分:1)

只需从您的汇总中删除此关键字即可:

$( document ).ready(function() {
    var id1 = $("#one").val();
    $("#final_value").val(id1);

    var id2 = $("#two").val();
    $("#final_value").val(id2);

    $("#final_value").val(parseInt(id1) + parseInt(id2));    
});