2012-08-01 14 views
43

मैं कैसे jQuery के साथ onFocus एक इनपुट प्रपत्र का डिफ़ॉल्ट मान हटाकर पुनः यह स्पष्ट जब था सबमिट बटन दबाया जाता है कर सकते हैं?jQuery स्पष्ट इनपुट डिफ़ॉल्ट मान

<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> 
+6

आप देशी इस्तेमाल कर सकता 'placeholder' बजाय विशेषता? पुराने [ब्राउजरफ़ाइल] (https://github.com/jamesallardice/Placehold.js) पुराने ब्राउज़र में काम करने के लिए उपलब्ध हैं। –

+0

@JamesAllardice आपने इसे उत्तर के रूप में क्यों पोस्ट नहीं किया? मुझे लगता है कि सबसे आसान और सबसे अच्छा समाधान है। – jelies

+0

@jelies - मैं इसे एक जवाब के रूप में पोस्ट नहीं किया क्योंकि जब यह क्या ओ पी करने के लिए कोशिश कर रहा है के रूप में एक ही बात करता है, यह वास्तव में उत्तर नहीं मिलता है कि उनके कोड के साथ गलत है। लेकिन मैं सहमत हूं, यह निश्चित रूप से सबसे आसान समाधान है! –

उत्तर

83

आप इस का उपयोग कर सकते हैं .. आपके अपने कोड की

<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> 

बात, समस्या यह है कि jQuery के attr एपीआई द्वारा

$('.input').attr('value','Email Adress'); 

और नहीं के लिए निर्धारित है के रूप में आप किया है:

$('.input').attr('value') = 'Email address'; 
+0

मैंने इस उत्तर का उपयोग करने का फैसला किया है क्योंकि यह सबसे सुरुचिपूर्ण लगता है। – viktor

+1

thnx.i अपने आप jquery.this लिए नया हूँ मेरी 1 स्वीकार किए जाते हैं anser यहाँ है, और है तीसरे समग्र (आप शायद मेरी प्रतिष्ठा अंकों की यह मान सकते हैं के रूप में) – Kaustubh

+0

क्यों '$ ('। इनपुट')। RemoveAttr ('मान')' काम नहीं करता? –

3

कि प्रयास करें:

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); 
    }); 
3
$('.input').on('focus', function(){ 
    $(this).val(''); 
}); 

$('[type="submit"]').on('click', function(){ 
    $('.input').val(''); 
}); 
6

जब तक आपकी पुराने ब्राउज़र के बारे में वास्तव में चिंतित तुम सिर्फ नए एचटीएमएल 5 प्लेसहोल्डर इस्तेमाल कर सकते हैं तो जैसे गुण:

<input type="text" name="email" placeholder="Email address" class="input" /> 
+2

"जब तक आप पुराने ब्राउज़र के बारे में वास्तव में चिंतित नहीं होते हैं" ... आप 'प्लेसहोल्डर' विशेषता को पॉलीफिल कर सकते हैं ताकि यह पुराने ब्राउज़र में भी काम कर सके। प्रश्न पर मेरी टिप्पणी देखें, और अन्य उदाहरण के लिए [Modernizr विकि] (https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills) देखें। –

+0

हाँ यह सच है, या आप अपनी उत्सुकता से खुद को खींचने के लिए बस JQuery लिख सकते हैं। –

10
$(document).ready(function() { 
    //... 
//clear on focus 
$('.input').focus(function() { 
    $('.input').val(""); 
}); 
    //clear when submitted 
$('.button').click(function() { 
    $('.input').val(""); 
}); 

});

+0

यह वह जगह है गलत '$ ('इनपुट।') Attr ('मान') = 'ईमेल पता';।', होना चाहिए '$ ('इनपुट।') Attr ('मूल्य', 'ई-मेल पता')। 'यह जवाब कैसे उखाड़ फेंका है? –

+1

@ToniMichelCaubet उत्तर संपादित किया, धन्यवाद। वह कोड वैसे भी सवाल से संबंधित नहीं था। मैंने इसे विषय-वस्तु के कोड से कॉपी किया। –

2

बस एक आशुलिपि

$(document).ready(function() { 
    $(".input").val("Email Address"); 
     $(".input").on("focus click", function(){ 
      $(this).val(""); 
     }); 
    }); 
</script> 
संबंधित मुद्दे