Wie kann ich den Standardwert eines Eingabeformulars onfocus mit jquery löschen und erneut löschen, wenn die Senden-Taste gedrückt wird?
<html>
<form method="" action="">
<input type="text" name="email" value="Email address" class="input" />
<input type="submit" value="Sign Up" class="button" />
</form>
</html>
<script>
$(document).ready(function() {
//hide input text
$(".input").click(function(){
if ($('.input').attr('value') == ''){
$('.input').attr('value') = 'Email address'; alert('1');}
if ($('.input').attr('value') == 'Email address'){
$('.input').attr('value') = ''}
});
});
</script>
placeholder
stattdessen das native Attribut verwenden? Es stehen verschiedene Polyfills zur Verfügung, damit es in älteren Browsern funktioniert.Antworten:
Sie können dies verwenden ..
<body> <form method="" action=""> <input type="text" name="email" class="input" /> <input type="submit" value="Sign Up" class="button" /> </form> </body> <script> $(document).ready(function() { $(".input").val("Email Address"); $(".input").on("focus", function() { $(".input").val(""); }); $(".button").on("click", function(event) { $(".input").val(""); }); }); </script>
Wenn Sie von Ihrem eigenen Code sprechen, besteht das Problem darin, dass die attr-API von jquery von festgelegt wird
$('.input').attr('value','Email Adress');
und nicht wie du es getan hast:
$('.input').attr('value') = 'Email address';
quelle
$('.input').removeAttr('value')
funktioniert das nicht?$(document).ready(function() { //... //clear on focus $('.input').focus(function() { $('.input').val(""); }); //clear when submitted $('.button').click(function() { $('.input').val(""); });
});
quelle
$('.input').attr('value') = 'Email address';
, sollte sein,$('.input').attr('value', 'Email address');
wie wird diese Antwort positiv bewertet?Wenn Sie sich nicht wirklich Sorgen um ältere Browser machen, können Sie das neue HTML5-
placeholder
Attribut wie folgt verwenden :<input type="text" name="email" placeholder="Email address" class="input" />
quelle
placeholder
Attribut mehrfach ausfüllen , damit es auch in älteren Browsern funktioniert. Siehe meinen Kommentar zu der Frage und andere Beispiele im Modernizr-Wiki .$('.input').on('focus', function(){ $(this).val(''); }); $('[type="submit"]').on('click', function(){ $('.input').val(''); });
quelle
Versuch das:
var defaultEmailNews = "Email address"; $('input[name=email]').focus(function() { if($(this).val() == defaultEmailNews) $(this).val(""); }); $('input[name=email]').focusout(function() { if($(this).val() == "") $(this).val(defaultEmailNews); });
quelle
Nur eine Abkürzung
$(document).ready(function() { $(".input").val("Email Address"); $(".input").on("focus click", function(){ $(this).val(""); }); }); </script>
quelle