छिपाएँ / प्रोटोटाइप के साथ स्पष्ट इनपुट क्षेत्र

वोट
0

मैं निम्नलिखित स्क्रिप्ट है:

if (Object.isUndefined(Axent)) { var Axent = { } }
 Axent.SelfLabeledInput = Class.create({
initialize: function() {
    var labelSelector = arguments[0] || 'label';
    $$(labelSelector).findAll(function(l) {return (l.readAttribute('for') !== null)}).each(function(l){
        l.hide();
        $(l.readAttribute('for'))._value = l.innerHTML;
        if ($(l.readAttribute('for')).value.empty()) {
            $(l.readAttribute('for')).value = $(l.readAttribute('for'))._value
        }
        $(l.readAttribute('for')).observe('blur',function(e){if(Event.element(e).value == '') Event.element(e).value = Event.element(e)._value;});
        $(l.readAttribute('for')).observe('focus',function(e){if(Event.element(e).value == Event.element(e)._value) Event.element(e).value = '';});
    });
}
});

और निम्न प्रपत्र:

    <form name=comform action=# method=post id=commentform>
    <div class=input> 
<p>
<label for=comment>Type your comment here...</label>
<textarea name=comment id=comment rows=8 cols=10 class= ></textarea>
</p>
</div>
    <div class=input>
<p>
<label for=author>Name (required)</label>        
<input type=text name=author id=author size=22 class=/>
</p>
</div>
    <div class=input>
<p>
<label for=email>Email (gravatar enabled) (required)</label>         
<input type=text name=email id=email size=22 class=/>
</p>
</div>
    <div class=input>
<p>
<label for=url>Website (optional)</label>        
<input type=text name=url id=url size=22 />
</p>
</div>
    <div class=submit>
<input type=submit name=submit id=sub value=Leave comment /> 
<input type=hidden name=comment_post_ID id=hidden value=> 
</div>

</form> 
<script type=text/javascript>
//<![CDATA[
new Axent.SelfLabeledInput('#commentform label');
//]]>
</script>

मैं इस स्क्रिप्ट से एक समारोह लिखने के लिए ऐसी है कि जब मैं इस फार्म पर प्रस्तुत दबाते हैं, और एक इनपुट फ़ील्ड उन्मुख है तो यह खाल / यह साफ करता है, तो यह डेटाबेस को प्रस्तुत नहीं प्राप्त करता है चाहता हूँ।

यह नवीनतम प्रोटोटाइप lib साथ काम करता है। मैं किसी भी जावास्क्रिप्ट पता नहीं है, तो मैं आपकी मदद की जरूरत है। मैं अपने वर्डप्रेस टिप्पणियों क्षेत्र के लिए इस प्रपत्र का उपयोग कर रहा हूँ।

17/01/2009 को 20:38
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
0

आपको चिंता करने की जरूरत नहीं है, लेबल प्रस्तुत नहीं किया जाएगा।

यह स्क्रिप्ट यद्यपि प्रस्तुत पर डोम लेबल निकालने होंगे। यह बाद डोम भरी हुई है चलाने के लिए है (ठीक है, कम से कम फार्म) और यदि आपके प्रपत्र तत्वों लेबल के अंदर हैं वे भी गायब हो जाएगा!

document.getElementById( 'commentform' ).onsubmit = function() {
    var labels = this.getElementsByTagName( 'label' );
    while( labels[0] ) {
        labels[0].parentNode.removeChild( labels[0] );
    }
    return true;
} 

यह एक प्रोटोटाइप स्क्रिप्ट नहीं है। यह पी LAIN हे ld जम्मू avascript।

17/01/2009 को 22:02
का स्रोत उपयोगकर्ता

वोट
0

तत्वों लेबल पाठ के साथ पहले से भर रहे हैं। फोकस पर डिफ़ॉल्ट पाठ गायब हो जाता है और कलंक पर पुन: दिखाई देता है, तो तत्व अभी भी खाली है।

आप इस की कोशिश कर सकते। मैं प्रोटोटाइप का उपयोग नहीं करते, तो यह स्थानों में एक अनुमान है।

if (Object.isUndefined(Axent)) { var Axent = { } }
Axent.SelfLabeledInput = Class.create({
initialize: function() {
    var labelSelector = arguments[0] || 'label';
    $$(labelSelector).findAll(function(l) {return (l.readAttribute('for') !== null)}).each(function(l){
        l.hide();
        var el = $(l.readAttribute('for'));
        el._value = l.innerHTML;
        if (el.value.empty()) {
            el.value = el._value
        }
        el.observe('blur',function(e){if(Event.element(e).value == '') Event.element(e).value = Event.element(e)._value;});
        el.observe('focus',function(e){if(Event.element(e).value == Event.element(e)._value) Event.element(e).value = '';});
        $(el.form).observe( 'submit', (function(thisel) { return function(e) {
            if( thisel.value == thisel._value ) { thisel.value = '' }
        }})(el));
    });
}
17/01/2009 को 23:34
का स्रोत उपयोगकर्ता

वोट
2

मुझे अंत में यह काम करने के लिए मिला है! यहाँ अंतिम कोड अगर किसी इसे चलाने के लिए चाहता है:

if (Object.isUndefined(Axent)) { var Axent = { } }
Axent.SelfLabeledInput = Class.create({
initialize: function() {
    var labelSelector = arguments[0] || 'label';
    $$(labelSelector).findAll(function(l) {return (l.readAttribute('for') !== null)}).each(function(l){
            l.hide();
            var el = $(l.readAttribute('for'));
            el._value = l.innerHTML;
            if (el.value.empty()) {
                    el.value = el._value
            }
            el.observe('blur',function(e){if(Event.element(e).value == '') Event.element(e).value = Event.element(e)._value;});
            el.observe('focus',function(e){if(Event.element(e).value == Event.element(e)._value) Event.element(e).value = '';});
    $(el.form).observe( 'submit', (function(thisel) { return function(e) {
            if( thisel.value == thisel._value ) { thisel.value = '' }
    }})(el));
    });
}});
18/01/2009 को 11:56
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more