netizen0911 netizen0911 - 1 month ago 6
Javascript Question

Auto populate field base on what was entered in another field simultaneously

I was trying to figure out how to auto-populate the input value base on what was entered in another input field using javascript. Here's my code:

<script>
add = document.getElementById('address').value;
city = document.getElementById('city').value;
state = document.getElementById('state').value;
zip = document.getElementById('zip').value;
compAdd = add+" "+city+" "+state+" "+zip;
function showAdd(){
document.getElementById('shipadd1').value=compAdd;
document.getElementById('add1').innerHTML=compAdd;
}
</script>

<form action="" onchange="showAdd();">

Home Address: <input id="address" name="address" type="text" /><br/>
Apt or Suite Number: <input id="suite" name="suite" type="text" /><br/>
City/Town: <input id="city" name="city" type="text" /><br/>
State:<select id="state" name="state" value="">...</select><br/>
Zip:<input id="zip" name="zip" type="text" value=""/><br/>


<p> Select Shipping Address Below: </p>

<input type="checkbox" id="shipping-address-1" name="address1" value=""><span id="shiadd1">(Print auto-populated shipping address here...)</span>

<input type="checkbox" id="shipping-address-2" name="address2" value="">ABC Corp 123 Main Street, My City, State Zip
</form>

Answer

I made a js fiddle based on what you're asking for.

HTML

Home Address:
<input id="address" name="address" type="text" />
<br/>Apt or Suite Number:
<input id="suite" name="suite" type="text" />
<br/>City/Town:
<input id="city" name="city" type="text" />
<br/>State:
<select id="state" name="state" value="">
    <option value="AL">Alabama</option>
    <option value="AK">Alaska</option>
</select>
<br/>Zip:
<input id="zip" name="zip" type="text" value="" />
<br/>
<p>Select Shipping Address Below:</p>
<input type="checkbox" id="shipping-address-1" name="address1" value="">
<label for="shipping-address-1" id="shiadd1">(Print auto-populated shipping address here...)</label>
<input type="checkbox" id="shipping-address-2" name="address2" value="">
<label for="shipping-address-2">ABC Corp 123 Main Street, My City, State Zip</label>

JavaScript

$("#address,#suite,#city,#state,#zip").change(function () {
    var addressArray = [$("#address").val(), $("#suite").val(), $("#city").val(), $("#state").val(), $("#zip").val()];
    $("#shiadd1").text(addressArray.join(' '));
});