-6

I am developing a program to enter marks of a student and perform addition operation on it. My code is:

<html>
    <head>
        <script type="text/javascript">
            function fstudent()
            {
                var m1 =eval(document.getElementById("txtmarks1")).value;
                var m2 =eval(document.getElementById("txtmarks2")).value;
                var m3 =eval(document.getElementById("txtmarks3")).value;
                var total =m1+m2+m3;
                alert("total marks is"+total);
            }
        </script>
    </head>
    <body>
        <form name="STUDENT">
            <table>
                <tr>
                    <td>Enter StudentNo:</td>
                    <td><input type="number" id="numSno"></td>
                </tr>
                <tr>
                    <td>Enter StudentName:</td>
                    <td><input type="text" id="txtSname"></td>
                </tr>
                <tr>
                    <td>Enter Marks1:</td>
                    <td><input type="text" id="txtmarks1"></td>
                </tr>
                <tr>
                    <td>Enter Marks2:</td>
                    <td><input type="text" id="txtmarks2"></td>
                </tr>
                <tr>
                    <td>Enter Marks3:</td>
                    <td><input type="text" id="txtmarks3"></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" value="Calculate Total Marks" onclick="fstudent()"></td>
                </tr>
            </table>
        </form>
    </body>
</html>

When I perform an addition operation on it, it is returning a string value, but when I perform a multiplication operation on it, it is returning an integer value. I tried the parseInt method to convert string to int, but it is also giving a string value only.

TylerH
  • 20,799
  • 66
  • 75
  • 101

2 Answers2

0

If you can enter only integers:

var m1 = parseInt(document.getElementById("txtmarks1").value, 10);

If floats are allowed:

var m1 = parseFloat(document.getElementById("txtmarks1").value);
Lucas Trzesniewski
  • 50,214
  • 11
  • 107
  • 158
0
<html>
<head>
    <script type="text/javascript">
        function fstudent() {
            var m1 = document.getElementById("txtmarks1").value;
            var m2 = document.getElementById("txtmarks2").value;
            var m3 = document.getElementById("txtmarks3").value;
            var total = parseInt(m1) + parseInt(m2) + parseInt(m3);
            alert("total marks is" + total);
        }
    </script>
</head>
<body>
    <form name="STUDENT">
    <table>
        <tr>
            <td>
                Enter StudentNo:
            </td>
            <td>
                <input type="number" id="numSno">
            </td>
        </tr>
        <tr>
            <td>
                Enter StudentName:
            </td>
            <td>
                <input type="text" id="txtSname">
            </td>
        </tr>
        <tr>
            <td>
                Enter Marks1:
            </td>
            <td>
                <input type="text" id="txtmarks1">
            </td>
        </tr>
        <tr>
            <td>
                Enter Marks2:
            </td>
            <td>
                <input type="text" id="txtmarks2">
            </td>
        </tr>
        <tr>
            <td>
                Enter Marks3:
            </td>
            <td>
                <input type="text" id="txtmarks3">
            </td>
        </tr>
        <tr>
            <td>
            </td>
            <td>
                <input type="submit" value="Calculate Total Marks" onclick="fstudent()">
            </td>
        </tr>
    </table>
    </form>
</body>
</html>
  • Please consider adding explanations to your answers instead of just providing code. That way your answers are more useful to people with difficulties or who are in the process of learning. – TylerH Jul 07 '14 at 17:10
  • Thanks @TylerH, I will do. Me too new to stackoverflow. I just started posting since two weeks. Its learning curve for me as well. – Bhasyakarulu Kottakota Jul 07 '14 at 17:15