2011-01-27 18 views
6

के बावजूद लेबल टेक्स्ट ओवरलैप कर रहा है, मैंने एक लॉगिन फॉर्म बनाया है जिसमें 'उपयोगकर्ता नाम' और 'पासवर्ड' के लिए लेबल शामिल हैं, नीचे दिए गए jquery के बाद लेबल को छिपाने के लिए प्रयोग किए जाने वाले निम्न jquery मैदान।क्रोम (लेकिन फ़ायरफ़ॉक्स नहीं) ऑटोफिल jquery

$(document).ready(function(){ 

$("form.login input") 
    .bind("focus.labelFx", function(){ 
    $(this).prev().hide(); 
    }) 
    .bind("blur.labelFx", function(){ 
    $(this).prev()[!this.value ? "show" : "hide"](); 
    }) 
    .trigger("blur.labelFx"); 

}); 

और html:

<form method="post" id="login-form" action="/accounts/login/"> 
    <div class="input-wrapper"> 
     <label for="id_username">Username</label> 
     <input id="id_username" size="30" type="text" name="username"> 
    </div> 
</form> 

समस्या क्रोम का स्वत: पूर्ण उपयोगकर्ता नाम और पासवर्ड इस स्क्रिप से पहले लोड हो रहा है होने के लिए इसे पकड़ कर सकते हैं, मुझे अजीब अतिव्यापी पाठ दे रही है जब तक मैं इसे मैन्युअल रूप पर ध्यान केंद्रित प्रकट होता है । यह फ़ायरफ़ॉक्स के साथ एक समस्या है। Pic: http://imgur.com/kJRLa

इस पर ठीक करने के तरीके पर कोई सुझाव है कि स्वत: भरण डेटा लेबल को छिपाने का कारण बनता है?

+0

क्या आपने टेक्स्टबॉक्स के लिए स्वत: पूर्ण बंद करने का प्रयास किया है? बहुत से लोगों को स्वत: पूर्णता के साथ परेशानी होती है और एसओ पर इससे पहले पूछा गया है। इस सवाल को कैसे करें इसे करने के लिए जांचें। http://stackoverflow.com/questions/2530/how-do-you-disable-browser-autocomplete-on-web-form-field-input-tag – sarcastyx

+0

मैं समझता हूं कि मेरी समस्या का समाधान होगा, लेकिन मैं करता हूं सिद्धांत में स्वतः पूर्ण की तरह और मैं चाहता हूं कि लोग इसका उपयोग अपने उपयोगकर्ता नाम और पासवर्ड को पूर्ववत करने के लिए कर सकें। तो, सबसे खराब स्थिति परिदृश्य मैं वास्तव में ऐसा कर सकता हूं, लेकिन मुझे एक समाधान मिलना चाहिए जो मुझे स्वत: पूर्ण रखने और लेबल को छिपाने देता है। – IanWhalen

उत्तर

5

क्रोम (और, समकक्ष, Google टूलबार के अन्य ब्राउज़रों पर ऑटोफिल) वेब के खराब नागरिक हैं जो इसके फॉर्म भरने के व्यवहार के साथ हैं। जब यह फार्म फ़ील्ड में भर जाता है, तो यह सामान्य घटनाओं को नहीं चलाता है। यदि आप ऑटोफिल को अक्षम नहीं करना चाहते हैं, तो आप एक समयबद्ध घटना सेट कर सकते हैं जो समय-समय पर यह जांचने के लिए जांच करता है कि ऑटोफिल हुआ है या नहीं।

this SO question का पहला उत्तर (प्रश्न पूछने वाला) एक उदाहरण समाधान है।

5

Benjamin Miles tutorial पढ़ने के बाद मैंने देखा तुम इतनी तरह jQuery के साथ स्वत: भरण chrome में पता लगा सकते हैं:

$(window).load(function(){ 
    if($('input:-webkit-autofill')){ 
     //Remove Label Function 
    }   
}); 

ध्यान दें कि आप $(window).load(function(){});

में कोड डालना होगा और नहीं

$(document).ready(function(){}) 
0

आप कर सकते थे निम्नलिखित

का भी उपयोग करें

5 मिलीसेकंड के बाद कोड निष्पादित किया जाता है और लेबल छुपाया जाता है।

संबंधित मुद्दे