2012-05-30 7 views
5

मैं this plugin पर काम कर रहा हूं और मुझे एक बग रिपोर्ट मिली है जिसमें एंड्रॉइड 2.3 के साथ कुछ समस्याएं थीं।एंड्रॉइड - टेक्स्ट सत्यापन कस्टम सत्यापन प्लगइन के साथ मान्य नहीं है

मैंने एंड्रॉइड एसडीके डाउनलोड किया, और 2.3 में प्लगइन की कोशिश की और ऐसा लगता है कि पाठ इनपुट मान्य नहीं हैं और त्रुटि दिखाई नहीं देती है या खराब नहीं होती है। अन्य इनपुट ठीक से मान्य करते हैं। मैंने एंड्रॉइड 4.0+ में कोशिश की और लगता है कि ठीक काम कर रहा है। मुझे नहीं पता कि कहां से शुरू करना है, क्योंकि मुझे नहीं पता कि समस्या कहां से आ रही है और मेरे पास इन चीजों को डीबग करने के लिए एक वास्तविक एंड्रॉइड फोन नहीं है, और एम्यूलेटर में विकास उपकरण और सामान की कमी है।

मुझे संदेह है कि यहां एक कोड डंप पोस्ट करने में मदद मिलेगी, लेकिन यह validate() विधि है जो js/idealforms.js में पाई जा सकती है। "बग" उस फ़ाइल में या कहीं और से आना चाहिए, जब तक कि सीएसएस संबंधित न हो, जो मुझे ऐसा नहीं लगता है।

/** Validates an input 
* @memberOf Actions 
* @param {object} input Object that contains the jQuery input object [input.input] 
* and the user options of that input [input.userOptions] 
* @param {string} value The value of the given input 
* @returns {object} Returns [isValid] plus [error] if it fails 
*/ 
validate: function (input, value) { 

    var isValid = true, 
     error = '', 
     $input = input.input, 
     userOptions = input.userOptions, 
     userFilters = userOptions.filters 

    if (userFilters) { 

    // Required 
    if (!value && /required/.test(userFilters)) { 
     error = (
     userOptions.errors && userOptions.errors.required 
      ? userOptions.errors.required 
      : 'This field is required.' 
    ) 
     isValid = false 
    } 

    // All other filters 
    if (value) { 
     userFilters = userFilters.split(/\s/) 
     for (var i = 0, len = userFilters.length; i < len; i++) { 
     var uf = userFilters[i], 
      theFilter = typeof Filters[uf] === 'undefined' ? '' : Filters[uf], 
      isFunction = typeof theFilter.regex === 'function', 
      isRegex = theFilter.regex instanceof RegExp 
     if (
      theFilter && (
      isFunction && !theFilter.regex(input, value) || 
      isRegex && !theFilter.regex.test(value) 
     ) 
     ) { 
      isValid = false 
      error = (
      userOptions.errors && userOptions.errors[uf] || 
      theFilter.error 
     ) 
      break 
     } 
     } 
    } 

    } 

    return { 
    isValid: isValid, 
    error: error 
    } 
} 

क्या कोई मेरी मदद कर सकता है? मैं इस प्लगइन को जितना संभव हो उतने प्लेटफार्मों में काम करना चाहता हूं, लेकिन वास्तविक एंड्रॉइड फोन के बिना इसे करना मुश्किल है।

उत्तर

1

क्या यह वर्तमान कोड है?

मैं विशिष्ट कुछ भी जो आपकी समस्या है लेकिन कभी कभी त्रुटियों के इन प्रकार के विशिष्ट ब्राउज़र संस्करण में quirks के कारण होता है कारण होगा वहाँ बहुत कुछ चीजें मैं जाँच करेगा को इंगित नहीं कर सकते हैं:

(1) मुझे पता है अर्ध-कॉलन जावास्क्रिप्ट में माना जाता है कि "वैकल्पिक" है लेकिन मैंने देखा है कि कुछ ब्राउज़रों (विशेष रूप से मोबाइल वाले - यह अनुभव से सीखा जाता है) यदि आप उन्हें शामिल नहीं करते हैं तो निराशाजनक व्यवहार होता है। मैं उन्हें प्रत्येक कथन के बाद जोड़ दूंगा।

(2) मैं तुम्हें एक फिल्टर चर यहाँ का उल्लेख देखें:

 theFilter = typeof Filters[uf] === 'undefined' ? '' : Filters[uf], 

आप userFilters मतलब ... या एक वैश्विक चर यहाँ नहीं दिखाया फ़िल्टर किया जाता है?

(3) यह चर घोषणा:

$input = input.input, 

तुम सच में चर $ इनपुट कॉल करने के लिए अर्थ रहे हैं? यह कहीं भी इस्तेमाल नहीं किया जाता है।

(4) जब आप & & और || साथ में मैं स्पष्ट रूप से ग्रंथों को ब्रांड्स के माध्यम से इंगित करता हूं:

if (
     theFilter && (
     isFunction && !theFilter.regex(input, value) || 
     isRegex && !theFilter.regex.test(value) 
    ) 
    ) 

    error = (
    userOptions.errors && userOptions.errors[uf] || 
    theFilter.error 
) 

आशा है कि इससे मदद मिलती है।

+0

** 1: ** मैंने कोशिश की, लेकिन इससे कोई फर्क नहीं पड़ता। मैं सब कुछ एक फाइल में उलझन में डाल रहा हूं, इसलिए मुझे शक है कि यह समस्या है। ** 2: ** 'फ़िल्टर' वैश्विक नहीं है लेकिन यह एक उच्च दायरे के अंदर है। मुझे नहीं लगता कि समस्या यहां भी है। ** 3: ** '$ इनपुट' स्थानीय है, यहां कोई विरोध नहीं है। ** 4: ** पहले से ही समस्या यहां हो सकती है, मैंने एक और "पारंपरिक" तरीके से पुनर्गठन करने की कोशिश की लेकिन फिर भी समस्या बनी रहती है ... ऐसा लगता है कि इस बग को पकड़ना मुश्किल है ... मुझे लगता है कि यह हो सकता है मेरे वास्तविक कोड की बजाय एंड्रॉइड के ब्राउज़र के साथ एक बग। शायद इसके चारों ओर एक रास्ता है ... कौन जानता है। फिर भी धन्यवाद। +1 – elclanrs

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