Ich kann ganz einfach ein Html-Eingabefeld erstellen, in dem bereits Text enthalten ist. Aber wenn der Benutzer auf das Eingabefeld klickt, verschwindet der Text nicht, sondern bleibt dort. Der Benutzer muss dann den Text manuell entfernen, um ihn einzugeben. Wie kann ich ein Eingabefeld erstellen, bei dem der Text verschwindet, wenn der Benutzer auf das Eingabefeld klickt?
Antworten
Zu viele Anzeigen?Was Sie tun möchten, ist das HTML5-Attribut zu verwenden placeholder
mit dem Sie einen Standardwert für Ihr Eingabefeld festlegen können:
<input type="text" name="inputBox" placeholder="enter your text here">
Damit sollten Sie das erreichen, was Sie sich wünschen. Seien Sie jedoch vorsichtig, da das Platzhalterattribut in Internet Explorer 9 und früheren Versionen nicht unterstützt wird.
Um dies zu erreichen, können Sie die beiden Ereignisse onfocus und onblur verwenden:
<input type="text" name="theName" value="DefaultValue"
onblur="if(this.value==''){ this.value='DefaultValue'; this.style.color='#BBB';}"
onfocus="if(this.value=='DefaultValue'){ this.value=''; this.style.color='#000';}"
style="color:#BBB;" />
Ich denke, das ist die einfache Lösung, die alle Ihre Probleme lösen sollte:
<input name="myvalue" id="valueText" type="text" value="ENTER VALUE">
Dies ist Ihre Schaltfläche zum Absenden:
<input type="submit" id= "submitBtn" value="Submit">
dann setzen Sie dieses kleine jQuery in eine js-Datei:
//this will submit only if the value is not default
$("#submitBtn").click(function () {
if ($("#valueText").val() === "ENTER VALUE")
{
alert("please insert a valid value");
return false;
}
});
//this will put default value if the field is empty
$("#valueText").blur(function () {
if(this.value == ''){
this.value = 'ENTER VALUE';
}
});
//this will empty the field is the value is the default one
$("#valueText").focus(function () {
if (this.value == 'ENTER VALUE') {
this.value = '';
}
});
Und es funktioniert auch in älteren Browsern. Außerdem kann es leicht in normales Javascript umgewandelt werden, wenn Sie es brauchen.
- See previous answers
- Weitere Antworten anzeigen