0

how can i populate javascript array value from my text box,

suppose i have a array like this

var a=new array("1.00","2.00");

instead of 1 2 i want to put text box value in there,which user will enter.

thx in advance,really appreciate it.

3
Contributors
5
Replies
6
Views
6 Years
Discussion Span
Last Post by Airshow
0

It depends on exactly what you want to do. There are many formulations here are a couple.

1. To put a textbox value into a specified index in the array:

var a = [];//new array
function putValueIntoArray(textboxID, index) {
  var textbox = document.getElementById(textboxID);
  if(textbox) {
    a[index] = textbox.value;
  }
}

2. To add a textbox value to the end of the array:

var a = [];//new array
function putValueIntoArray(textboxID) {
  var textbox = document.getElementById(textboxID);
  if(textbox) {
    a.push(textbox.value);
  }
}

In both cases you need to call putValueIntoArray from somewhere else in your code, with the appropriate arguments.

Airshow

1
//get textbox elements
var txtTextBox1 = document.getElementById('txtTexBox1');
var txtTextBox2 = document.getElementById('txtTexBox2');

//[] is short hand
var a = [txtTextBox1.value, txtTextBox2.value];
Votes + Comments
Super clean, minimal and directly to the point.
0

thanks a lot for your time and i am
sorry maybe i should have cleared this a bit more,i have alreay tried those technique but somehow its not working.

here is the code

<HEAD>





<script>

<!-- Begin

/*

stationname:	array of station names in sequence with 1st station

timediff: 		array of times from 1st station

starting:		array of departure times from 1st station

*/
var a=document.getElementById('b1');

var nameStation = new Array("Startville", "Twoshire  ", "Threeham  ", "Fourhampton", 

"Terminus  ");

var timeDiff = new Array("0:00", "1:03", "1:18", "1:43", "0:153"); // time to last 

station is 2 hours and 33 minutes = 153 minutes

var timeStart = new Array('1:00', "1:30", "1:05");

timeStart[0]= 'a.val';

var lines = new Array

nl = "\n";

t1 = "\t";

t2 = "\t\t";

i = 0;



function print2doc(){

	// head the schedule

	lines[0] = nameStation[i] +t1+ nameStation[++i] +t1+ nameStation[++i] +t1+ 

nameStation[++i] +t1+ nameStation[++i]+nl

	//v = sumTime(timeStart[1],timeDiff[4]); alert(v); return	// this for 

testing

	// build the lines for printing

	for (i=0; i<3; i++) { 

		lines[i+1] = timeStart[i] +t2+ sumTime(timeStart[i],timeDiff[1]) +t2+ 

sumTime(timeStart[i],timeDiff[2]) +t2+ sumTime(timeStart[i],timeDiff[3]) +t2+ sumTime

(timeStart[i],timeDiff[4]) + nl;

	}

	text = '<b><i>'+lines[0]+'</i></b>' + lines[1] +lines[2] + lines[3]

	//alert(text)

	// make a window for train schedule

	nw = window.open("","popWin","width=600,height=200")

	// write to window

	nw.document.open();

	nw.document.write("<html>\n<body bgcolor='lightsteelblue'>\n<h2 

align='center'>Train Schedule</h2>\n<pre>\n");

	nw.document.write(text);

	nw.document.write("</pre>\n</body>\n</html>");

	nw.document.close();

}



function sumTime(startT,deltaT){	// add times

	time1 = startT.split(":");

	time2 = deltaT.split(":");

	hours = time1[0]/1 + time2[0]/1;		// add hours

	minutes = time1[1]/1 + time2[1]/1;		// add minutes

	if (minutes >=180) { hours++; minutes = minutes - 60; }		// bump hours if 

needed

	if (minutes >=120) { hours++; minutes = minutes - 60; }		// bump hours if 

needed

	if (minutes >= 60) { hours++; minutes = minutes % 60; }		// bump again if 

needed

	if (minutes < 10) minutes = "0" + minutes;					

// add padding if required

	time3 = hours +":"+ minutes

	//alert(time3)

	return time3	// return the total as a string

}



// End -->

</script>	

</HEAD>






<BODY onUnload="if (!nw.closed) nw.close()">





<form>
<input type="text" id="b1">

<input type=button value="Generate the Schedule" onClick="print2doc()" 

style="background-color: gold;">

</form>



</div>







<!-- Script Size:  3.46 KB -->

Edited by Ezzaral: Added code tags. Please use them to format any code that you post.

0
timeStart[0]= 'a.val';

What are you trying to do at line 32?
Are you sure you don't mean this?

timeStart[0]= a.value;
0

This is a Timetable Generator.

Each route in a Timetable is essentially a 2-dimensional entity; "stations" against "start time". Therefore, consider, basing the presentation on just two arrays, with all timeDiffs and times as integers, not strings:

var stations = [//array
  {name:"Startville",  timeDiff:0},//object with two properties
  {name:"Twoshire",    timeDiff:63},
  {name:"Threeham",    timeDiff:78},
  {name:"Fourhampton", timeDiff:103},
  {name:"Terminus",    timeDiff:113}
];
var timeStart = [60, 65, 90];//array. All start times in minutes from midnight

This gives you the basis for the necessary arithmetic, in minutes. Convert results to hh:mm for presentation.

Now generate the table in two nested loops; outer loop for rows and inner loop for columns.

Try not to use document.write(). Instead use DOM methods to put generated output into the document, eg, document.createElement(), element.appendChild() and element.innerHTML=.

Airshow

Edited by Airshow: n/a

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.