parseInt()函数不起作用

时间:2018-07-01 13:50:14

标签: javascript

我有一个输入元素来接受数字类型。我知道javascript将输入作为字符串。因此我正在使用parseInt()转换为integer。但它不起作用。

我的代码是:

<tr>
    <td rowspan="6"><br><br><br><br><br>B1<br> Salary/Pension:</td>
    <td>(1) Salary (excluding all allowances, perquisites and profit in lieu of salary</td>
    <td><input type="text" id="sal" value="0" name="sal" placeholder="" class="form-control "></td>
</tr>
<tr>
    <td>(2) Allowances not exempt</td>
    <td><input type="text" id="allowance" value="0" name="allowance" placeholder="" class="form-control "></td>
</tr>
<tr>
    <td>(3)Value of perquisites</td>
    <td><input type="text" id="perquisites" value="0" name="perquisites" placeholder="" class="form-control "></td>

</tr>
<tr>
    <td>(4) Profits in lieu of salary</td>
    <td><input type="text" id="profit" name="profit" value="0" placeholder="" class="form-control"></td>
</tr>
<tr>
    <td>(5)Deduction u/s 16</td>
    <td><input type="text" id="ded16" name="ded16" value="0" placeholder="" class="form-control"></td>
</tr>
<tr>
    <td>(6)Income chargable under the head 'Salaries':</td>
    <td><input type="text" id="inchargesal" value="0" name="inchargesal" placeholder="" class="form-control" readonly></td>
</tr>

// js部分是:

  $(document).ready(function() {
    function change() {
        f = a + b + c + d - e;
        alert(f);
        $('#inchargesal').removeAttr('readonly').val(f);
    }
    $('#sal').on('change', function() {

        var a = parseInt(document.getElementsById("sal").value);
        alert("hi");
        change();
    });
    $('#allowance').on('change', function() {
        b = parseInt(document.getElementById("allowance").value)

        change();
    });
    $('#perquisites').on('change', function() {
        c = parseInt(document.getElementsById("perquisites").value);
        change();
    });
    $('#profit').on('change', function() {
        d = parseInt(document.getElementsById("profit").value);
        change();
    });
    $('#ded16').on('change', function() {
        e = parseInt(document.getElementsById("ded16").value);
        change();
    });
});

这里要注意的是,当我在parseInt语句上方使用alert(“ hi”)时,alert可以正常工作,但是当我在此之后使用它时,alert(“ hi”)不起作用。 / p>

怎么了?请帮忙。

1 个答案:

答案 0 :(得分:2)

您使用的文档方法不正确。没有这样的方法说getElementsById()。在HTML DOM中,id字段是唯一的,因此它永远不能是getElements,而只能是getElement。使用getElementById('id')使其正常工作。

始终最好先检查console,以便您可以自行解决大多数问题。 安慰 - enter image description here