user2990376
user2990376

Reputation: 11

Javascript to pick up values in a form text box

I want to: Use Javascript to pick up the values of form fields (text inputs in form), and add them all together, spitting them out into another label or div, all when I press a button.

Should be easy right?

edit: i have tried a couple things, however, I didn't think about posting them. Thought someone would reply with a little logic tips instead of some un-insightful waste of space.

<SCRIPT>
function add()
{
var a = document.getElementById("fscf_field4_8").value;
var b = document.getElementById("fscf_field4_10").value;
var c = document.getElementById("fscf_field4_12").value;
var d = document.getElementById("fscf_field4_14").value;
var e = document.getElementById("fscf_field4_16").value;
document.getElementById("fscf_field4_19").value =a+b+c+d+e;
}
</script>

<table>
<tr>
<td>
<div id="FSContact4" style="width:375px;">
<form action="/payment/#FSContact4" id="fscf_form4" method="post">
<input type="hidden" name="fscf_submitted" value="0">
<input type="hidden" name="fs_postonce_4" value="99193296484a8d52d2b9579199ca2f0c,1384214867">
<input type="hidden" name="si_contact_action" value="send">
<input type="hidden" name="form_id" value="4">

<div id="fscf_required4">
  <span style="text-align:left;">*</span> <span style="text-align:left;">indicates required field</span>
</div>

<input type="hidden" name="mailto_id" value="1">

<div id="fscf_div_clear4_4" style="clear:both;">
  <div id="fscf_div_field4_4" style="clear:left; float:left; width:99%; max-width:550px; margin-right:10px;">
    <div id="fscf_label4_4" style="text-align:left; padding-top:5px;">
      <label style="text-align:left;" for="fscf_field4_4">Company Name<span style="text-align:left;">*</span></label>
    </div>
    <div style="text-align:left;">
      <input style="text-align:left; margin:0;" type="text" id="fscf_field4_4" name="company-name" value="">
    </div>
  </div>
</div>

<div id="fscf_div_clear4_5" style="clear:both;">
  <div id="fscf_div_field4_5" style="clear:left; float:left; width:99%; max-width:550px; margin-right:10px;">
    <div id="fscf_label4_5" style="text-align:left; padding-top:5px;">
      <label style="text-align:left;" for="fscf_field4_5">Person Doing the Transaction<span style="text-align:left;">*</span></label>
    </div>
    <div style="text-align:left;">
      <input style="text-align:left; margin:0;" type="text" id="fscf_field4_5" name="person-doing-the-transaction" value="">
    </div>
  </div>
</div>

<div id="fscf_div_clear4_6" style="clear:both;">
  <div id="fscf_div_field4_6" style="clear:left; float:left; width:99%; max-width:550px; margin-right:10px;">
    <div id="fscf_label4_6" style="text-align:left; padding-top:5px;">
      <label style="text-align:left;" for="fscf_field4_6">email<span style="text-align:left;">*</span></label>
    </div>
    <div style="text-align:left;">
      <input style="text-align:left; margin:0;" type="text" id="fscf_field4_6" name="email01" value="">
    </div>
  </div>
</div>
</td>
</tr>
<tr>
<td>
<table border="1" bordercolor="#FFCC00" style="background-color:#FFFFCC" width="100%" cellpadding="3" cellspacing="3">
        <tr>
                <td>Invoice Number</td>
                <td>Amount (USD)</td>
        </tr>
        <tr>
                <td><input type="text" id="fscf_field4_7 name="Invoice Number 1"></td>
                <td><input type="text" id="fscf_field4_8 name="Amount 1"></td>
        </tr>
        <tr>
                <td><input type="text" id="fscf_field4_9 name="Invoice Number 2"></td>
                <td><input type="text" id="fscf_field4_10 name="Amount 2"></td>
        </tr>
        <tr>
                <td><input type="text" id="fscf_field4_11 name="Invoice Number 3"></td>
                <td><input type="text" id="fscf_field4_12 name="Amount 3"></td>
        </tr>
        <tr>
                <td><input type="text" id="fscf_field4_13 name="Invoice Number 4"></td>
                <td><input type="text" id="fscf_field4_14 name="Amount 4"></td>
        </tr>
        <tr>
                <td><input type="text" id="fscf_field4_15 name="Invoice Number 5"></td>
                <td><input type="text" id="fscf_field4_16 name="Amount 5"></td>
        </tr>
        <tr>
                <td><input type="button" value="Click to Calculate" onclick="add()"></td>
                <td><input type="text" id="fscf_field4_19"></td>
        </tr>
</table>
<div id="fscf_submit_div4" style="text-align:left; padding-top:2px;">
                <input type="submit" id="fscf_submit4" style="cursor:pointer; margin:0;" value="Submit">
</div>
</form>
</div>
</tr>
</td>
</table>

Upvotes: 0

Views: 3170

Answers (3)

m59
m59

Reputation: 43755

Yes. It is easy. Good observation!

Edit: Now that you've at least tried to form a serious question, here's a basic example of what you can do to get you started. A complete solution will require more work, but that's for you to have fun with!

Live demo here (click).

  <form id="myForm">
    <input type="text">
    <input type="text">
    <input type="text">
  </form>
  <button id="process">Process</button>
  <div id="output"></div>

var button = document.getElementById('process');
var form = document.getElementById('myForm');
var outputDiv = document.getElementById('output');

button.addEventListener('click', function() {
  var frag = document.createDocumentFragment();

  var children = form.childNodes;
  for (var key in children) {
    var node = children[key];
    if (node.nodeName === 'INPUT') {
      var p = document.createElement('p');
      p.textContent = node.value;
      frag.appendChild(p);
    }
  }
  outputDiv.textContent = '';
  outputDiv.appendChild(frag);
});

Upvotes: 3

printfmyname
printfmyname

Reputation: 971

To start with, you forgot to close the quotation marks of all the IDs of inputs. Try doing it. i.e.

<input type="text" id="fscf_field4_8 name="Amount 1">

needs to be:

<input type="text" id="fscf_field4_8" name="Amount 1">

Also you need to add parseInt() when you parsing string's int value. below i put the new code snippet Confirmation: Just tried your code with proper quotation marks and intParse(),it works

Your final code for integer parse:

<SCRIPT>

function add()
{
    var a = parseInt(document.getElementById("fscf_field4_8").value);
    var b = parseInt(document.getElementById("fscf_field4_10").value);
    var c = parseInt(document.getElementById("fscf_field4_12").value);
    var d = parseInt(document.getElementById("fscf_field4_14").value);
    var e = parseInt(document.getElementById("fscf_field4_16").value);
    document.getElementById("fscf_field4_19").value =a+b+c+d+e;
}
</script>

Upvotes: 0

jasonscript
jasonscript

Reputation: 6170

You're not calling your add() method when you click the submit element. You need to call the function.

Try

<input type="button" onclick="add();" value="Add">

Upvotes: 0

Related Questions