Javascripts indexOf()-metod returnerar -1 och inte 0 om den eftersökta strängen inte kan hittas.Matcnings problem
Om jag skriver "dans" i textrutan så matchar inte det. Men om jag skriver "ans" så funkar min kod.
Vad är fel på min kod : strang.indexOf(part) ?
<code>
<html>
<head>
<script language="javascript">
function matchar(strang, part) {
/* För att jämföra öka all input till stora bokstäver*/
strang = strang.toUpperCase()
part = part.toUpperCase()
if (strang.indexOf(part) > 0) {
return 'TRUE';}
else if (strang.indexOf(part) < 1 ) {
return 'FALSE';}
}
function visaLb(visas, myControl) {
T2.value = visas;
if (visas == 'TRUE') {
myControl.style.display = "block";
myControl.style.visibility = "visible";}
else if (visas == 'FALSE') {
myControl.style.display = "none";
myControl.style.visibility = "hidden";}
}
function testq(input, clientID, frTal, tiTal){
/*Läsa ur texten i textboxen*/
var tbText = document.getElementById(input).value;
var lbControl = null;
var lbText = null;
for(i=frTal; i<=tiTal; i++) {
lbControl = document.getElementById(clientID + 'lb' + i);
if (lbControl){
lbText = lbControl.innerHTML;
visaLb(matchar(lbText, tbText), lbControl); }
}
}
</script>
</head>
<body>
<p>Skriv här <input type="text" id="T1" size="20" onkeyup="testq('T1','ctl09_ctl00_', '1', '300')" >
resultat <input type="text" id="T2" size="20" ></p>
<a id="ctl09_ctl00_lb226" class="one" style="visibility:hidden;" href=('')>Dansklubben Sepafan</a>
<a id="ctl09_ctl00_lb227" class="one" style="visibility:hidden;" href=('')>Dansklubben Valsaruntn</a>
</body>
</html>
</code>Sv: Matcnings problem
Alltså, ändra till
if (strang.indexOf(part) > -1) {
return 'TRUE';}
else { // vi lär ju inte få -0.5 så...
return 'FALSE';}
}
(varför strängar med 'TRUE' resp. 'FALSE'?)