Få et javascript til at udfylde et hidden field.
Hej...Jeg har nedenstående formular/javascript som jeg har hentet på http://willmaster.com/possibilities/demo/AutoDropdownChange/ Det skal bruges til at brugere først skal vælge en hovedkategori, og derefter en underkategori, der afhænger af valget af hovedkategori.
Det jeg gerne vil have den til, er at sende array-nummeret (eller et andet nummer, der indikerer hvilket underkategorinummer der er valgt) til formularfeltet "SecValue".
Kan det lade sig gøre?
<html>
<head>
</head>
<body>
<form action="tjek.asp" method="post" name="frm">
<p>
<select name="primary" class="foldeud" onChange="java script:MakeSecondary()">
<option value="" selected>-- hovedkategori --</option>
<option value="opt1">Kategori 1</option>
<option value="opt2">Kategori 2</option>
<option value="opt3">Kategori 3</option>
<option value="opt4">Kategori 4</option>
</select>
<select name="secondary" class="foldeud">
<option value ="'document.frm.secondary.options[i].value'"></option>
</select>
<input type="hidden" name="SecValue">
</p>
</form>
<script type="text/javascript" language="JavaScript">
<!-- Copyright 2004 Bontrager Connection, LLC
// For additional information about this JavaScript
// and how to use it, see the "Changing Dropdown
// Content On-the-Fly (Without Reloading Web Page)"
// article, linked from the archives at
// from http://willmaster.com/possibilities/archives/
// The above note and the copyright line must remain with
// this JavaScript source code. Comments below this
// point in the code may be removed if desired.
var FormName = "frm";
var initSubLine = " -- vælg først en hovedkategori -- ";
var opt1Array = new Array();
opt1Array[0] = "-- vælg underkategori --";
opt1Array[1] = "Underkategori 1-1";
opt1Array[2] = "Underkategori 1-2";
opt1Array[3] = "Underkategori 1-3";
opt1Array[4] = "Underkategori 1-4";
var opt2Array = new Array();
opt2Array[0] = "-- vælg underkategori --";
opt2Array[1] = "Underkategori 2-1";
opt2Array[2] = "Underkategori 2-2";
opt2Array[3] = "Underkategori 2-3";
opt2Array[4] = "Underkategori 2-4";
var opt3Array = new Array();
opt3Array[0] = "-- vælg underkategori --";
opt3Array[1] = "Underkategori 3-1";
opt3Array[2] = "Underkategori 3-2";
opt3Array[3] = "Underkategori 3-3";
opt3Array[4] = "Underkategori 3-4";
var opt4Array = new Array();
opt4Array[0] = "-- vælg underkategori --";
opt4Array[1] = "Underkategori 4-1";
opt4Array[2] = "Underkategori 4-2";
opt4Array[3] = "Underkategori 4-3";
opt4Array[4] = "Underkategori 4-4";
///////////////////////////////////////////////////////////////
// //
// No customizations are normally required below this point. //
// //
///////////////////////////////////////////////////////////////
function Initialize() {
eval('document.' + FormName + '.secondary.options.length = 0');
eval('document.' + FormName + '.secondary.options[0] = new Option(initSubLine,"")');
} // function Initialize()
function MakeSecondary() {
var v = new String();
var plen = 0;
eval('plen = document.' + FormName + '.primary.length');
for(var i = 0; i < plen; i++) {
var theone = false;
eval('theone = document.' + FormName + '.primary.options[i].selected');
if(theone == true) {
eval('v = document.' + FormName + '.primary.options[i].value');
i = plen;
}
}
// The following method of removing non-alphanumerics is used
// instead of regular expressions, to accomodate IE/Mac.
var vlen = v.length;
var ts = new String();
for(var vi = 0; vi < vlen; vi++) {
var vs = v.substr(vi,1);
if((vs >= 'A' && vs <= 'Z') || (vs >= 'a' && vs <= 'z') || (vs >= '0' && vs <= '9')) {
ts += vs;
}
}
v = ts;
var Splitter = "|";
if(v.length < 1) { Initialize(); return; }
var arrayLength = eval(v + "Array.length");
eval('document.' + FormName + '.secondary.options.length = 0');
for(var i = 0; i < arrayLength; i++ ) {
var iArray = new Array();
eval("iArray = " + v + "Array[i].split(Splitter)");
if(iArray.length < 2) { iArray[1] = ""; }
eval('document.' + FormName + '.secondary.options[i] = new Option(iArray[0],iArray[1])');
}
} // function MakeSecondary()
setTimeout("Initialize()",500);
//-->
</script>
<!-- end of JavaScript -->
</body>
</html>
