2010-03-02 14 views
5

में काम नहीं करता है रेल ऐप पर मेरी रूबी में मैं एक प्रोटोटाइप फॉर्म का उपयोग करने की कोशिश कर रहा हूं। एलिमेंट.ऑब्सर्वर संदेश में वर्णों की गिनती चलाने के लिए। यह फ़ायरफ़ॉक्स/सफारी/क्रोम पर ठीक काम करता है, लेकिन आईई पर नहीं। आईई पर पर्यवेक्षक बस आग नहीं करता है। क्या ऐसा करने का कोई फिक्स या अलग तरीका है?पर्यवेक्षक आईई

मेरे गहरे लाल रंग का टैग इस तरह दिखता है:

<%= countdown_field('txtmsg[memo]','memo-counter', 141, :frequency => 0.10) %> 

countdown_field समारोह इस तरह दिखता है:

def countdown_field(field_id,update_id,max,options = {}) 
    function = "$('#{update_id}').innerHTML = (#{max} - $F('#{field_id}').length);" 
    count_field_tag(field_id,function,options) 
    end 

    def count_field_tag(field_id,function,options = {}) 
    out = javascript_tag function, :defer => 'defer' 
    out += observe_field(field_id, options.merge(:function => function)) 
    return out 
    end 

परिणामी एचटीएमएल इस तरह दिखता है:

<textarea class="memo-tag text txtmsg-memo" id="txtmsg[memo]" name="txtmsg[memo]" /> 
<p>You have <span id="memo-counter">...</span> characters left.</p> 

<script defer="defer" type="text/javascript"> 
    $('memo-counter').innerHTML = (141 - $F('txtmsg[memo]').length); 
</script> 
<script type="text/javascript"> 
    new Form.Element.Observer('txtmsg[memo]', 0.1, function(element, value) { 
        $('memo-counter').innerHTML = (141 - $F('txtmsg[memo]').length);}) 
</script> 

उत्तर

1

तुम सब से पहले अपने <textarea> तत्व के लिए एक समापन टैग जोड़ने की आवश्यकता है क्योंकि यह स्वयं बंद नहीं हो सकता है, और टी वह cols और rows विशेषताएँ अनिवार्य हैं।

नीचे दिए गए कोड का उपयोग करके मैं आंशिक रूप से इसे आईई के लिए काम कर सकता हूं। जब आप अक्षर टाइप करते हैं तो यह काउंटर को कम करता है, लेकिन किसी कारण से हटाएं, बैकस्पेस और कर्सर कुंजी IE6 का उपयोग करते समय काम नहीं करते हैं! यह फ़ायरफ़ॉक्स 3.6 का उपयोग कर ठीक काम करता है।

<textarea class="memo-tag text txtmsg-memo" id="txtmsg[memo]" cols="40" rows="2" name="txtmsg[memo]"></textarea> 
<p>You have <span id="memo-counter">...</span> characters left.</p> 
<script type="text/javascript"> 
    new Form.Element.Observer("txtmsg[memo]", 0.1, function(element, value) { 
    $("memo-counter").update(141 - value.length); 
    }); 
</script> 
+0

हाँ, जब मैं अपने प्रश्न को स्वरूपित कर रहा था तो मैंने आकस्मिक रूप से समापन टैग हटा दिया। इसे वापस जोड़ा, और कोल्स और पंक्तियों को जोड़ा। अभी भी काम नहीं करता है। – oillio

+0

यह मेरे ढांचे द्वारा उत्पन्न जावास्क्रिप्ट के कारण एक त्रुटि साबित हुई। फिर भी धन्यवाद। – oillio

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