JacobMedlem sedan dec. 2000503 inlägg Jag har försökt modifiera jojoxx auto select script, det fungerar tyvärr inte riktigt.
<script language="javascript" type="text/javascript">
var ignorevw=false; // Skall V eller W ignoreras?
var lista = new Array();
function searchlist(value,listobj){
if(lista.length == 0) buildlist(listobj);
value = value.split(' ');
matches=0;
listobj.length = lista.length;
for(i=0;i<value.length;i++){
for(n=0;n<lista.length;n++){
namn = lista[n].text.split(' ');
for(p=0;p<namn.length;p++){
if(namn[p].substring(0,value[i].length).toLowerCase()==value[i].toLowerCase()||ignorevw&&namn[p].substring(0,value[i].length).replace(/w/g,'v').toLowerCase()==value[i].replace(/w/g,'v').toLowerCase()){
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;
}
</script>
<form>
<table border="0">
<tr>
<td>
<input type="text" name="search" onKeyUp="searchlist(this.value,this.form.lista);" onKeyPress="searchlist(this.value,this.form.lista);" style="width: 150px;"><br>
<select name="lista" size="4" onChange="this.form.search.value=this[this.selectedIndex].value" style="width: 150px;">
<option value="1">Lindehoff Jacob</option>
<option value="2">Nilsson Adam</option>
<option value="3">Karlsson Ulf</option>
<option value="4">Östern Nisse</option>
</select>
</td>
</tr>
</table>
</form>
Det jag vill åstakomma är att man ska kunna skriva förnamnet eller efternamnet första. Med det vnliga skriptet så måste man skriva exakt i den ordningen som dom står.
Mitt skript fungerar nästa men det är lite struligt testa så får ni se.
JojoxxMedlem sedan juni 20004 308 inlägg Try this:
<script type="text/javascript">
var ignorevw=false; // Skall V eller W ignoreras?
var ignorecase=true; // Ignorera gemener / VERSALER ?
var lista = new Array();
function searchlist(value,listobj){
if(lista.length == 0) buildlist(listobj);
matches=0;
value=(ignorevw)?value.replace(/w/g,'v'):value;
value=(ignorecase)?value.toLowerCase():value;
listobj.length = lista.length;
for(n=0;n<lista.length;n++){
var teststr=" "+lista[n].text; teststr=(ignorevw)?teststr.replace(/w/g,'v'):teststr; teststr=(ignorecase)?teststr.toLowerCase():teststr;
var reverseorder=" "+teststr.split(" ")[2]+" "+teststr.split(" ")[1];
if(teststr.indexOf(" "+value)>-1||reverseorder.indexOf(' '+value)>-1){
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;
}
</script>
<form>
<input type="text" name="search" onKeyUp="searchlist(this.value,this.form.lista);" onKeyPress="searchlist(this.value,this.form.lista);" style="width: 150px;"><br>
<select name="lista" size="4" onChange="this.form.search.value=this[this.selectedIndex].text;" style="width: 150px;">
<option value="1">Lindehoff Jacob</option>
<option value="2">Nilsson Adam</option>
<option value="3">Karlsson Ulf</option>
<option value="4">Östern Nisse</option>
</select>
</form>
JacobMedlem sedan dec. 2000503 inlägg Den fungerar nästan som jag vill, problemet är att när men trycker mellansla och ska skriva efternamner eller tvärtom så försvinner resultatet. kan man lösa det oxå
JojoxxMedlem sedan juni 20004 308 inlägg Liten quick'n'dirty-ändring. Prova igen.
JacobMedlem sedan dec. 2000503 inlägg Kan man få scriptet att fungera med denna select oxå:
<select name="lista" size="4" onClick="this.form.uID.value=this[this.selectedIndex].value; this.form.search.value=this[this.selectedIndex].text" onChange="this.form.uID.value=this[this.selectedIndex].value; this.form.search.value=this[this.selectedIndex].text" style="width: 230px;">
<option value="3">Karlsson Ulf, Cob Media</option>
<option value="1">Lindehoff Jacob, Cob Media</option>
<option value="2">Nilsson Adam, Cob Media</option>
<option value="4">Östern Nisse, Cob Media</option>
<option value="9">då g, Net-On</option>
<option value="7">Linden Jake, Net-On</option>
<option value="8">Nordin Jake, Net-On</option>
</select>
JacobMedlem sedan dec. 2000503 inlägg Går det inte att fixa om det är mer än två ord eller?
JojoxxMedlem sedan juni 20004 308 inlägg <script type="text/javascript">
var ignorevw=false; // Skall V eller W ignoreras?
var ignorecase=true; // Ignorera gemener / VERSALER ?
var lista = new Array();
function searchlist(value,listobj){
if(lista.length == 0) buildlist(listobj);
matches=0;
value=(ignorevw)?value.replace(/w/g,'v'):value;
value=(ignorecase)?value.toLowerCase():value;
listobj.length = lista.length;
for(n=0;n<lista.length;n++){
var teststr=lista[n].text; teststr=(ignorevw)?teststr.replace(/w/g,'v'):teststr; teststr=(ignorecase)?teststr.toLowerCase():teststr; teststr=teststr.replace(/,/g,'');
var testarray=teststr.split(" "); valuearray=value.split(" "); var amatches=0;
for(var an=0;an<testarray.length;an++){
for(var ann=0;ann<valuearray.length;ann++){
if((" "+testarray[an]).match(new RegExp(" "+valuearray[ann]))){ amatches++; valuearray[ann]=false; }
}
}
if(amatches==valuearray.length){
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;
}
</script>
<form>
<input type="text" name="search" onKeyUp="searchlist(this.value,this.form.lista);" onKeyPress="searchlist(this.value,this.form.lista);" style="width: 150px;"><br>
<select name="lista" size="4" onChange="this.form.search.value=this[this.selectedIndex].text;" style="width: 150px;">
<option value="3">Karlsson Ulf, Cob Media</option>
<option value="1">Lindehoff Jacob, Cob Media</option>
<option value="2">Nilsson Adam, Cob Media</option>
<option value="4">Östern Nisse, Cob Media</option>
<option value="9">då g, Net-On</option>
<option value="7">Linden Jake, Net-On</option>
<option value="8">Nordin Jake, Net-On</option>
</select>
</form>