Ebenen-Fragen

Status
Nicht offen für weitere Antworten.

corona

Erfahrenes Mitglied
Hallo,
habe ein paar Fragen bezüglich Ebenen:

1.
weiss jemand wie ich einer Ebene einen farbigen Rand geben kann?
So schon mal nicht:
<div id="Layer4" style="position:absolute; left:106px; top:195px; width:416px; height:190px; z-index:15; background-color: #FFC387; layer-background-color: #FFC387; border: 10px #FFFFFF;; visibility: hidden;">

2.
ich hab ein formular auf der seite. wie kann ich das machen, dass wenn der benutzer in einem textfeld buchstaben eingibt, obwohl nur zahlen erlaubt sind, dass dann eine Ebene mit der Fehlermeldung erscheint? Mit JavaScript weiß ich in etwa wie das geht. Allerdings gefallen mir die Windows-Fenster als Warnungsfenster nicht.

danke für die antworten. selfhtml konnte mir da auch nicht weiter helfen :(
corona
 
Hallo!

Also bzgl. der Rahmenfarbe, schau mal hier.

Und was die Kontrolle der Eingabe betrifft, da könntest Du, wie Du betreits erwähntest, JavaScript verwenden. Ansonsten könntest Du z. B. PHP nutzen, allerdings wird die Eingabe erst dann kontrolliert, wenn mal im Formular auf "senden" (oder was auch immer bei Dir steht) geklickt hat.

redlama
 
Hi,

Du könntest jeweils das aktuell eingegebene Zeichen mit Hilfe des onkeyup-Events prüfen
lassen, ob es sich um eine Ziffer handelt.
Ist das nicht der Fall, so blendest Du Dein Layer ein und entfernst zugleich das falsche Zeichen
wieder.
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<meta name="author" content="Quaese">
<script language="javascript" type="text/javascript">
    <!--
    function checkKey(objInput){
        // Neues Zeichen aus Gesamtinhalt ermitteln
        var strCheck = objInput.value;
        strCheck = strCheck.substring((strCheck.length-1), strCheck.length);

        // Falls es sich nicht um eine Ziffer handelt
        if(strCheck.search(/[0-9]/) == -1){
            // Fehlermeldungslayer einblenden
            document.getElementById("Layer4").style.visibility = "visible";
            // Ungültiges Zeichen entfernen
            objInput.value = objInput.value.substr(0, (objInput.value.length-1));
        }
    }
  -->
</script>
<style type="text/css">
<!--
body{ font-family : "Lucida Grande", "Lucida Sans Unicode", verdana, lucida, sans-serif;
      font-size : 12px;
      color: #000000;
      background: #ffffff;}

h1{ font-size: 13px;}
-->
</style>
</head>
<body>
    <h1>Zifferneingabe</h1>
    <form action="" method="">
        <input type="Text" name="txtEingabe" value="" onkeyup="checkKey(this);">
    </form>
    <div id="Layer4" style="position:absolute; left:106px; top:195px; width:416px; height:190px; z-index:15; background-color: #FFC387; layer-background-color: #FFC387; border: 10px solid #FFFFFF; visibility: hidden;">
        <p>Bitte nur Ziffern eingeben!</p>
        <a onclick="document.getElementById('Layer4').style.visibility='hidden';" href="javascript: void(0);">schliessen</a>
    </div>
</body>
</html>
Ciao
Quaese
 
Hallo,
danke erstmal. Hat auch alles funktioniert :)

Ein kleines Problem ist das ich Frames benutze. Wie kann ich es machen, dass wenn im rechten Frame im Textfeld eine Ziffer eingegeben wird, auf dem linken Frame eine Ebene sichtbar gemacht wird.

Da muss ich doch da irgendwas ändern:
// Falls es sich nicht um eine Ziffer handelt
if(strCheck.search(/[0-9]/) == -1){
// Fehlermeldungslayer einblenden
document.getElementById("Layer4").style.visibility = "visible";
// Ungültiges Zeichen entfernen
objInput.value = objInput.value.substr(0, (objInput.value.length-1));
}

Aber was? Danke nochmal.
Corona
 
Hi,

vorausgesetzt, der linke Frame hat den Namen "frameLinks", musst Du folgende Zeile
HTML:
 document.getElementById("Layer4").style.visibility = "visible";
hierdurch ersetzen
HTML:
top.frameLinks.document.getElementById("Layer4").style.visibility = "visible";
Der DIV-Container mit der ID "Layer4" muss sich selbstverständlich im Dokument befinden,
das im linken Frame angezeigt wird.

Ciao
Quaese
 
Status
Nicht offen für weitere Antworten.
Zurück