Rubee
Rubee

Reputation: 129

Getting form element by value in Javascript

Hey guys I have a form which is stated below

<td><input type="text" id="NumberofRisks" name="Yeses" style="width: 25px" value ="<?php echo $row['Total-Score'];?> " </td>

The form has some data from a table as a value and I would like to take this value into my Javascript from to do a simple calculation. The function is listed below.

function sum()
{
    sumField = document.getElementById("NumberofRisks");
    var sum = 0;

    $("input[name^='yanswer']:checked").each(function(){
    sum++;        

    });

        sumField.value = sum;
}

I need to get that value into the function as the value where it says NumberofRisks. Is there a way I can do this?

Upvotes: 0

Views: 80

Answers (2)

Jeff
Jeff

Reputation: 305

In order to grab the value of the input box you can use the following javascript:

var sum = document.getElementById("NumberofRisks").value;

Is this what you're trying to achieve?

As a side note, in the example you provided you did not close the input box so that might be giving you some errors as well.

EDIT:

If you're looking for a pure Javascript way to do this see below:

var elements = document.getElementsByTagName('input');
var sum = document.getElementById("NumberofRisks").value;

for (var i = 0; i < elements.length; i++) {
    if (elements[i].checked) {
        sum++
    }
}

See fiddle - http://jsfiddle.net/es26j/

Upvotes: 1

Josh Harrison
Josh Harrison

Reputation: 5994

Try this to set sum to the initial value of #NumberofRisks.

var prevCheckedCount = 0;

function sum()
{
    var sumField = document.getElementById("NumberofRisks");

    // start sum with the inital value in HTML from DB
    var valueOnClick = Math.floor(sumField.value);
    var thisCheckedCount = 0;

    $("input[name^='yanswer']:checked").each(function(){
         thisCheckedCount++;
    });

    if(thisCheckedCount <= prevCheckedCount) {
        sumField.value = valueOnClick - prevCheckedCount + thisCheckedCount;
    } else {
        sumField.value =valueOnClick + thisCheckedCount;
    }

    prevCheckedCount = thisCheckedCount;
}

Here's this code working: http://jsfiddle.net/t5hG4/

Upvotes: 1

Related Questions