2014-10-16 24 views
5

मैं लॉगिन पेज पर इनपुट फ़ील्ड पर प्लेसहोल्डर चला रहा हूं। एंड्रॉइड पर (4.3) यह स्वचालित रूप से पेज लोड पर उपयोगकर्ता और पासवर्ड फ़ील्ड भरता है। जावास्क्रिप्ट का उपयोग करके मैं स्वत: उपयोगकर्ता इनपुट की लंबाई प्राप्त करने में सक्षम हूं लेकिन जब मैं पासवर्ड इनपुट पर एक ही फ़ंक्शन चलाता हूं तो यह 0ऑटोफिल (एंड्रॉइड क्रोम) पर पासवर्ड इनपुट फ़ील्ड लंबाई = 0

जब भी मैं क्रोम रिमोट डीबगिंग का उपयोग करके डीबग करता हूं तो यह दिखाता है कि पासवर्ड इनपुट फ़ील्ड " "लंबाई = 0. के साथ फिर भी एंड्रॉइड क्रोम क्षेत्र में पासवर्ड दिखाता है।

वैसे भी इसके आसपास है। मुझे बस पता लगाने की आवश्यकता है कि इनपुट फ़ील्ड खाली नहीं है, इसलिए मैं प्लेसहोल्डर को छुपा सकता हूं।

$(document).ready(function(){ 
    setTimeout(function() { 
     alert($("#password").val().length); 
     checkPlaceholder("#password"); 
    }, 1000); 
}); 

function checkPlaceholder(x) { 
    if($(x).val().length === 0){ 
     $(x).parent().find(".input_placeholder").removeClass("placeholder_hide"); 
    } 
    else { 
     $(x).parent().find(".input_placeholder").addClass("placeholder_hide"); 
    } 
} 
+0

यदि आप इस पोस्ट में अपना कोड जोड़ते हैं तो आपको त्वरित परिणाम मिलेंगे। – Fergoso

+0

टिप के लिए धन्यवाद। – Jason

उत्तर

0

ठीक है, मुझे भी इसी तरह की समस्या थी। और मुझे इसके बारे में कोई जानकारी नहीं मिली। लेकिन मैंने देखा, एंड्रॉइड क्रोम दस्तावेज़ निकाय पर उपयोगकर्ता के टैप के बाद वास्तविक मूल्य के साथ पासवर्ड फ़ील्ड भरें। उस पासवर्ड फ़ील्ड के बाद 'change' ईवेंट उत्पन्न होता है, और यदि आप इसकी कीमत देखते हैं तो यह भर जाएगा। दुर्भाग्यवश क्रोम उसी तरह काम नहीं करता है अगर हम 'click'/'touch'/'focus' etc. ईवेंट, केवल हार्डवेयर टैप को ट्रिगर करते हैं।

तो, मैंने पासवर्ड क्षेत्र पर 'change' ईवेंट के लिए ईवेंट श्रोता जोड़कर मेरी समस्या का समाधान किया। आप समाधान की तरह कुछ हो सकता है के लिए:

$(document).ready(function() { 
    // leave this code for other browsers 
    setTimeout(function() { 
     alert($("#password").val().length); 
     checkPlaceholder("#password"); 
    }, 1000); 
    // android Chrome fix 
    $('#password').change(checkPlaceholder.bind(null, '#password')); 
}); 

लेकिन, जैसा कि मैंने पहले लिखा था, कि कोड केवल पृष्ठ पर उपयोगकर्ता नल के बाद निष्पादित करेंगे।

+0

यहां वही समस्या है, लेकिन अभी भी कोई समाधान नहीं है –

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