wenn Ankername auf der Site nicht existiert, dann... ?

Jerinca

Erfahrenes Mitglied
Hallo!

Ich habe eine Suchfunktion gebastelt, die ganz einfach anhand von Ankernamen funktioniert (wichtige Stellen sind fett):
Code:
<script language="javascript">
function suchen() {
	var SN = document.form0.SN.value;
	if (SN.length == 0) {
		alert("Bitte geben Sie die Seriennummer ein,\nnach der gesucht werden soll!");
		document.form0.SN.focus();
		return false;
		}
	else {
		window.location = 'xyz.asp#' + SN;
		}
}
</script>

Aufruf:
<form id="form0" name="form0" method="post" action="">
<input type="text" name="SN" value="" maxlength="11">
<input type="button" name="suche" value="Suchen" onClick="suchen()">
</form>

Der Ankername wird dynamisch generiert, nämlich so:
<A name="<%= Recordset.Fields.Item("SN").Value %>"><%=(Recordset.Fields.Item("SN").Value)%></A>
Das klappt alles gut, nur mir ist ein Dorn im Auge, daß einfach nix passiert, wenn man einen Wert eingibt, die es nicht gibt.

Sprich: Wenn der Ankername nicht auf der Site zu finden ist, kann ja auch nicht hingesprungen werden - klar. In diesem Fall passiert nix. Ich hätte in diesem Fall aber gerne noch ein alert, damit der User weiß, warum nichts passiert ist.

Jetzt hock' ich da rum und beiß mir die Zähne dran aus, wie ich der JavaScript-Funktion sagen kann: "wenn der Ankername nicht existiert, dann..."

Gibt es da vielleicht irgendeinen Kniff?

Vielen Dank für jede Anregung!

P.S.: Hier könnt die Suchfunktion sehen, nach der ich mich gerichtet habe (dort funktioniert es so wie bei mir, nur daß sie keinen Button hat und alles in VBScript läuft): http://www.pts.info/dw/liste.asp
 
Hallo!

Wen's interessiert: Ich hab's gelöst :D Und zwar mit dem natürlich vorhandenen Array "anchors" (alle Anker auf der Site)!

Hier die komplette Suchfunktion mit allen Fehlermeldungen:
Code:
<script language="javascript">
	function suchen() {
		var SN = document.form0.SN.value;
		if (SN.length < 11) {
			if(SN.length == 0) {
				alert("Bitte geben Sie zuerst die Seriennummer ein,\nnach der gesucht werden soll!");
				document.form0.SN.focus();
				return false;
				}
			else {
				alert("Die Seriennummer muss 11-stellig sein!\nBitte korrigieren Sie Ihre Eingabe!");
				document.form0.SN.select();
				document.form0.SN.focus();
				return false;
				}
			}
		else {
			for(i = 0; i < document.anchors.length; i++) {
				if(document.anchors[i].name == SN) {
					window.location = 'xyz.asp#' + SN;
					return false;
					}
				}
			alert("Die eingegebene Seriennummer ist auf dieser Seite nicht vorhanden!");
			document.form0.SN.focus();
		}
	}
</script>
Danke und bis demnächst!

Schönes Weekend, Jerinca
 
Zurück