2013-03-25 6 views
6

क्या वैसे भी मैं एक त्रुटि पर लाल रंग को लाल रंग में बदल सकता हूं और पाठ से छुटकारा पा सकता हूं? यह एकमात्र त्रुटि है जिसे मैं प्रदर्शित करना चाहता हूं, और इनपुट/टेक्स्टरेरा केंद्रित होने के बाद यह गायब हो जाएगा।jquery सत्यापन प्लगइन- सीमा रंग बदलें + कोई पाठ

<div id="contact-form"> 
      <form method="get" id="contacts"> 
       <div class="contact-controls"> 
        <label class="contact-label" for="name-input">NAME</label> 
        <div class="input-wrapper"> 
         <input type="text" name="contact-name" id="name-input" placeholder="Your Name" required> 
        </div> 
       </div> 
       <div class="contact-controls"> 
        <label class="contact-label" for="email-input">EMAIL</label> 
        <div class="input-wrapper"> 
         <input type="text" name="contact-email" id="email-input" placeholder="Your Email" required> 
        </div> 
       </div> 
       <div class="contact-controls"> 
        <label class="contact-label" for="message-input">MESSAGE</label> 
        <div class="input-wrapper"> 
         <textarea name="contact-message" id="message-input" rows="15" placeholder="Hi there&#33;" required></textarea> 
        </div> 
       </div> 
       <div class="contact-controls"> 
        <input type="hidden" name="save" value="contact"> 
        <button type="submit" class="contact-button">Send</button> 
       </div> 
      </form> 
     </div> 
+2

हम अपने वर्तमान को देखने के लिए की आवश्यकता होगी सत्यापन पाठ जो "पाठ से छुटकारा पा रहा है" – Vortex

+0

ए एच, मेरे पास अभी तक यह नहीं है, मैं सोच रहा हूं कि कोई रास्ता है या नहीं, या यह एक और प्लगइन है जो मैं कर सकता हूं जो मैं देख रहा हूं – vytfla

+0

हां, एक आसान तरीका है। मेरा जवाब देखें – Sparky

उत्तर

15

निम्न कार्य करें:

1) त्रुटि संदेश पाठ को दबाने के लिए return false को errorPlacement कॉलबैक फ़ंक्शन सेट करें।

2) रंग का बॉर्डर, या जो कुछ भी, तत्व के चारों ओर दिखाने के लिए प्लगइन का .error & .validclass के लिए सीएसएस संशोधित करें। डिफ़ॉल्ट रूप से, प्लगइन पहले से ही स्वचालित रूप से लागू होता है और इन दो class के हटा देता है, इसलिए इसके लिए सेट करने के लिए कोई विशेष प्लगइन विकल्प नहीं है।

कार्य डेमो: http://jsfiddle.net/8vQFd/

jQuery:

$(document).ready(function() { 

    $('#myform').validate({ // initialize the plugin 
     // your rules and options, 
     errorPlacement: function(){ 
      return false; // suppresses error message text 
     } 
    }); 

}); 
+0

मीठे, यह बहुत सही है। प्रश्न: पृष्ठ लोड पर मेरा पहला इनपुट फ़ील्ड पहले से ही एक त्रुटि दिखा रहा है (.error {सीमा: 1px लाल ठोस}); मैं इसे कैसे बना सकता हूं ताकि उपयोगकर्ता गलत वर्णों में प्रवेश करने के बाद ही एक त्रुटि को झुकाए? – vytfla

+0

@vytfla, बस मेरे jsfiddle का पालन करें जो पहले से ही आप चाहते हैं। चूंकि मैं आपका 'validate()' फ़ंक्शन नहीं देख पा रहा हूं, मुझे यकीन नहीं है कि यह कैसा हो रहा है। क्या आप इस मुद्दे को दिखाने के लिए अपने जेएसफ़िल्ड को संशोधित कर सकते हैं? – Sparky

+0

http://jsfiddle.net/8vQFd/ – vytfla

-1

आप अपने इनपुट/textareas करने के लिए एक वर्ग जोड़ सकता है कि एक लाल बॉर्डर

जोड़ना होगा मैं यह कहा जाता .त्रुटि

input:focus,textarea:focus{ 
outline: none !important; 
} 

input.error, textarea.error{ 
outline:red groove thin; 
} 

तब जाकर इनपुट को खोजने के लिए jQuery का उपयोग वर्ग 'आतंक' के साथ/textareas और खाली इसके मूल्य को रिक्त स्थान पर सेट करें।

$(document).ready(function() { 
    $('#contact-form').find('.error').val(' '); 
}); 

Jsfiddle V1

अपडेट किया गया जे एस

की

उदाहरण

$(document).ready(function() { 
    $('#contact-form').find('.error').val(' '); 
    $('input, textarea').click(function() { 
    $(this).removeClass('error').val(''); 
    }); 

    var name = $('#name-input').val(); 

    if(name == ''){ 
     $('#name-input').addClass('error'); 
    } 
    }); 

सीएसएस

input:focus,textarea:focus{ 
    border-color: initial; 
} 

input.error, textarea.error{ 
    border:1px solid red; 
} 

एचटीएमएल

<div id="contact-form"> 
     <form method="get" id="contacts"> 
      <div class="contact-controls"> 
       <label class="contact-label" for="name-input">NAME</label> 
       <div class="input-wrapper"> 
        <input type="text" name="contact-name" id="name-input" placeholder="Your Name" value="" class="" required> 
       </div> 
      </div> 
      <div class="contact-controls"> 
       <label class="contact-label" for="email-input">EMAIL</label> 
       <div class="input-wrapper"> 
        <input type="email" name="contact-email" id="email-input" placeholder="Your Email" value="" class="" required> 
       </div> 
      </div> 
      <div class="contact-controls"> 
       <label class="contact-label" for="message-input">MESSAGE</label> 
       <div class="input-wrapper"> 
        <textarea name="contact-message" id="message-input" rows="15" placeholder="Hi there&#33;" class="" required></textarea> 
       </div> 
      </div> 
      <div class="contact-controls"> 
       <input type="hidden" name="save" value="contact"> 
       <button type="submit" class="contact-button">Send</button> 
      </div> 
     </form> 
    </div> 

JSfiddle V2

+0

आपके jsfiddle में ईमेल/संदेश सीमाएं पहले से ही लाल हैं; फ़ील्ड खाली होने पर उपयोगकर्ता प्रेस भेजने के बाद मैं उन्हें लाल रंग में बदलना चाहता हूं। – vytfla

+0

यदि कोई त्रुटि है तो इनपुट डेटा में कक्षा 'त्रुटि' जोड़ने के लिए आप जिस डेटा को संसाधित करने के लिए उपयोग कर रहे हैं, (आप उस तरीके को भी सेट कर सकते हैं) –

+0

@vytfla मैंने अपना उत्तर –

0

कोई jQuery कोई अन्य जोड़ें/किसी भी कार्यक्षमता को संशोधित बस जोड़े Css

input[class="error"]{border:1px solid #f00 !important;} input[class="form control error"]{border:1px solid #f00 !important;} .error p{color:#f00 !important;} 
संबंधित मुद्दे