webForumDet fria alternativet

Autoselect / Fill problem

5 svar · 224 visningar · startad av SteveP

StevePMedlem sedan mars 2003772 inlägg
#1

Jag har 2st Selectboxar.
När man markerar ett värde i en selectbox så visas det värdet i en textbox.
Sammtidigt när man markerar ett värde i en selectbox så markeras ett annat värde i en annan selectbox som har samma "value".

Problemet är att det inte skrivs in nåt värde i den 2:a textboxen som ligger under den andra Selectboxen som blir automarkerad.
Man måste markera nåt annat värde i selectboxen och sen återmarkera så visas värdet.

Testa koden så förstår ni.

<head>
<script id="ClientEventHandler" Language="JavaScript">

var lista = new Array();
function AutoDisplay(value,listobj){
	if(lista.length == 0) buildlist(listobj);
	matches=0;
	listobj.length = lista.length;
	for(n=0;n<lista.length;n++){
		if(lista[n].text.substring(0,value.length)==value||ignorevw&&lista[n].text.substring(0,value.length).replace(/w/g,'v')==value.replace(/w/g,'v')) {
			listobj[matches].text = lista[n].text;
			listobj[matches].value = lista[n].value;
			matches++;
		}
	}
	listobj.length = matches;
	listobj.selectedIndex=0;
}

function buildlist(obj){
	for(n=0;n<obj.length;n++){
		lista[n] = new makeobj(obj[n].value,obj[n].text);
	}
}
function makeobj(value,text){
	this.value=value; this.text=text;
}

function matchStart(t,obj){
	for(var i=0;i<obj.length;i++){
		obj[i].selected=(t==obj[i].value);
	}
}

</script>
</head>

<body>

<form>

<select size="4" name="StartDateList" onChange="this.form.StartDate.value=this[this.selectedIndex].text; matchStart(this[this.selectedIndex].value,this.form.PersonList);">
<option value="9340">26/05/1994</option>
<option value="9341">19/04/1995</option>
<option value="9342">10/08/1995</option>
</select>

<br>
<input type="text" name="StartDate" class="InputDoneDate">

<br><br><br>
<select size="4" name="PersonList" onChange="this.form.Person.value=this[this.selectedIndex].text;">
<option value="9340">SWD</option>
<option value="9341">TWD</option>
<option value="9342">LNW</option>
</select>

<br>
<input type="text" name="Person" class="InputPersonSmall">

</form>
JohnsenMedlem sedan juli 2000836 inlägg
#2
function matchStart(t,obj){
	for(var i=0;i<obj.length;i++){
		obj[i].selected=(t==obj[i].value);
	}
   document.forms[0].Person.value = document.forms[0].PersonList[document.forms[0].PersonList.selectedIndex].text;
}
StevePMedlem sedan mars 2003772 inlägg
#3

ah Good stuff!

Hur gör jag om jag har tex 2st till?

Alltså 2st selectboxar med ett varsit textfield under.

StevePMedlem sedan mars 2003772 inlägg
#4

Hmm ingen som vet? Kan ju inte va så svårt...
Nu gäller den för "Personlist"
Men hur lägger jag till en till?

StevePMedlem sedan mars 2003772 inlägg
#5
function matchStart(t,obj){
	for(var i=0;i<obj.length;i++){
		obj[i].selected=(t==obj[i].value);
	}
   document.forms[0].Person.value = document.forms[0].PersonList[document.forms[0].PersonList.selectedIndex].text;
}

Nu Skrivs ju bara PersonList ut Automatiskt när man klickar på "StartDateList" Selecten.
Men man ska även ska kunna klicka på "PersonList" selecten och då ska StartDateList Skrivas ut automatiskt.

document.forms[0].Person.value = document.forms[0].PersonList[document.forms[0].PersonList.selectedIndex].text;

document.forms[0].StartDate.value = document.forms[0].StartDateList[document.forms[0].StartDateList.selectedIndex].text;

Detta fungerar ju inte.. :(

StevePMedlem sedan mars 2003772 inlägg
#6

Nu funkar det.
Vet inte ifall det är optimalt men det fungerar varjefall


function matchStartStartDate(t,obj){
	for(var i=0;i<obj.length;i++){
		obj[i].selected=(t==obj[i].value);
	}
   document.forms[0].StartDate.value = document.forms[0].PostListStartDateList[document.forms[0].PostListStartDateList.selectedIndex].text;

}

function matchStartPerson(t,obj){
	for(var i=0;i<obj.length;i++){
		obj[i].selected=(t==obj[i].value);
	}
   document.forms[0].Person.value = document.forms[0].PostListPersonList[document.forms[0].PostListPersonList.selectedIndex].text;

}
251 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
131 ms — hämta forumlista (db)
117 ms — hämta statistik (db)
128 ms — hämta tråd, inlägg och bilagor (db)