I have 3 functions that, when the user enters their first and last name in the message box, it returns (a)Their name merged in array form and (b)Their names merged as well but in an array of objects. My problem is that when I test it in Google Chrome, nothing shows up when I press the Save button, but in JSbin it just returns:
[object Object]
This is the functions code (useMerge.js):
var first_name = [];
var last_name = [];
var fInput = document.getElementById("fname");
var lInput = document.getElementById("lname");
var messageBox = document.getElementById("display");
function insert ( ) {
first_name.push( fInput.value );
last_name.push( lInput.value );
Show();
}
function Show () {
//clear messagebox
fInput.value = "";
lInput.value = "";
//show
messageBox.innerHTML = "";
messageBox.innerHTML = mergeHandler(first_name,last_name,merge2Single);
messageBox.innerHTML = mergeHandler(first_name,last_name,merge2Object);
}
//merges
function merge2Single(first, last){
var arr=[];
arr.push(first);
arr.push(last);
return arr.join(" ");
}
function mergeHandler(arr1, arr2, func){
var i=0;
var size = arr1.length;
var result=[];
for(i=0; i<size; i++){
result.push(func(arr1[i], arr2[i]));
}
return result;
}
function merge2Object(first_name, last_name){
var arr=[];
arr.push({FirstName: first_name,
LastName: last_name});
return arr;
}
Html code:
<!DOCTYPE html>
<html>
<head>
<script src="useMerge.js" type="text/javascript"></script>
<meta charset=utf-8 />
<title>UI</title>
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section {
display: block;
}
</style>
</head>
<body>
<form>
<h1>Please enter data</h1>
<input id="fname" type="text" placeholder="First Name" />
<input id="lname" type="text" placeholder="Last Name" />
<input type="button" value="Save" onclick="insert()" />
</form>
<div id="display"></div>
</body>
</html>
deferattribute to your script tag foruseMerge.js