Domino 9 und frühere Versionen > ND6: Entwicklung

Web/JavaScript : Suche per Enter bzw. Button starten

<< < (2/2)

flaite:
Return. Gute Idee. Versuch mal

--- Code: ---onkeypress="evalKeyForSubmit(event);return false"

--- Ende Code ---
in dem onkeypress-handler unten. 
In IE wird der  eventhandler nicht funktionieren. Dafür gibts dieses if-Konstrukt als erste Zeile deiner event-Handler Funktion
evalKeyForSubmit(event):

--- Code: ---if(!event && window.event) {
    event = window.event;
  }

--- Ende Code ---

Driri:
JA ! Ich hab es, danke Axel. Das mit dem Return war der Tipp.

Folgendermaßen funktioniert das jetzt :

Die Seite enthält als Passthru-HTML

--- Zitat ---<input name="suchfeld" type="text" size="10" onkeypress="return evalKeyForSubmit(event);">
<input type="button" name="search" value="Suche" onclick="sucheStarten()">

--- Ende Zitat ---

Im JS-Header sind die beiden Funktionen "sucheStarten" und "evalKeyForSubmit" definiert

--- Zitat ---function sucheStarten()
{
suchStr = document.forms[0].suchfeld.value;
document.forms[0].suchfeld.value = "";
parent.frames[3].location.href = "LkCat2IndexSearch/?SearchView&Query=" + suchStr;
}

--- Ende Zitat ---


--- Zitat ---function evalKeyForSubmit(event)
{
if(!event && window.event)
   {
   event = window.event;
   }
if (event.which == 13 || event.which == 14)
// ENTER oder RETURN gedrückt, also Suche starten
   { 
   sucheStarten();
   return false;
   }
else
   { 
   return true;
   }
}

--- Ende Zitat ---

Ich hatte das vorher schonmal mit dem Return im If-Zweig, allerdings hatte ich da die Klammern ({}) für die Aktionen nicht gesetzt und dann ist jedesmal "return false;" ausgeführt worden.

Driri:
Mist. Natürlich wieder zu früh gefreut. Im Firefox rennt das so wunderbar, aber im IE habe ich immer noch den Error 400.

Ich vermute, ich hab das mit dem zusätzlichen If-Zweig für den IE falsch verstanden. Ich habe mal bei SelfHTML geschaut wegen des Eventhandlers.

Daraufhin habe ich das noch wie folgt angepaßt, was leider auch nicht läuft im IE (im Firefox läufts natürlich weiterhin) :


--- Zitat ---function evalKeyForSubmit(event)
{
if(!event && window.event)
   {   
   event = window.event;
   }
if (event.which)
   {   
   taste = event.which
   }
   else if (event.keycode)
   {
   taste  = event.keycode
   }
if (taste == 13 || taste == 14)
// ENTER oder RETURN gedrückt, also Suche starten
   { 
   sucheStarten();
   return false;
   }
   else
   { 
   return true;
   }
}

--- Ende Zitat ---

Noch eine Idee ?

Driri:
Ok, habs jetzt mit ein wenig Google-Suche herausgefunden. Für Firefox 2 und IE 6 (andere Versionen habe ich hier nicht zu Testen) reicht folgender Code aus :


--- Zitat ---function evalKeyForSubmit(event)
{
   if (event.keyCode == 13 || event.keyCode == 14)
   // ENTER oder RETURN gedrückt, also Suche starten
   { 
   sucheStarten();
   return false;
   }
   else
   { 
   return true;
   }
}

--- Ende Zitat ---

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln