2010-10-27 10 views
10

मेरे पास चेकबॉक्स है और एक पाठ इसका अनुसरण करता है, जैसे;
[चेकबॉक्स] मैं सहमत हूंjquery - किसी विशिष्ट तत्व के लिए त्रुटि प्लेसमेंट का उपयोग कैसे करें?

चेकबॉक्स जब जमा करने क्लिक किया नहीं है, त्रुटि संदेश मैं दिखाने का वर्तमान तरीका है (मैं errorElement का उपयोग करें: "div");

[चेकबॉक्स]
यह फ़ील्ड आवश्यक है।
मैं सहमत हूं **

मैं चाहूंगा;
[चेकबॉक्स] मैं सहमत हूं
इस क्षेत्र

यह कैसे किया पाने के लिए किसी भी विचार की आवश्यकता है ?.

संबंधित चेकबॉक्स और मेरे पास पाठ तत्वों के लिए HTML रैप इस तरह है;
[div] [चेकबॉक्स] मैं सहमत हूं [/ div] [div] [/ div]

मैंने कोशिश की errorPlacment: के रूप में यह सिर्फ इतना है कि अकेले तत्व के लिए आवेदन करने की उम्मीद कर इस प्रकार है;

...    
messages: { 
    usage_terms: { 
     required: "Must agree to Terms of Use.", 
    //errorElement: "div" 
    errorPlacement: function(error, element) { 
     error.appendTo(element.parent("div").next("div")); 
     } 
    } 
} 
... 


यह काम नहीं किया। कोई उपाय?।

उत्तर

22

errorPlacement, (एक विकल्प के रूप) के नीचे संदेशों नहीं है, यह एक वैश्विक विकल्प है, तो बजाय इसे इस तरह दिखना चाहिए:

messages: { 
    usage_terms: "Must agree to Terms of Use." 
} 
errorPlacement: function(error, element) { 
    if(element.attr("name") == "usage_terms") { 
    error.appendTo(element.parent("div").next("div")); 
    } else { 
    error.insertAfter(element); 
    } 
} 

यहाँ जब निर्णय लेने से जहां यह जाता है हम सिर्फ तत्व नाम की जाँच कर रहे है , हालांकि आप एक और जांच कर सकते हैं, उदाहरण के लिए उन सभी को जो इस वर्ग की तरह व्यवहार करते हैं, और element.hasClass("placeAfter") कर रहे हैं।

+0

वर्क्स एक आकर्षण की तरह है, धन्यवाद! – freedayum

+1

+1, अच्छी व्याख्या – SagarPPanchal

0

फ़ाइल एचटीएमएल

<label for="Q008" class="control-label titular">Question text 008 by example</small></label> 
<input type="text" class="form-control" name="Q008" id="Q008" maxlength="500" /> 
<div id="Q008error"></div> 

<label class="control-label titular">Question text 009 by example</label> 
<div class="controls"> 
    <input type="checkbox" name="Q009" id="Q009_1" value="1" /> 
    <label for="Q009_1">Text 91</label> 
</div> 
<div class="controls"> 
    <input type="checkbox" name="Q009" id="Q009_2" value="2" /> 
    <label for="Q009_2">Text 92</label> 
</div> 
<div class="controls"> 
    <input type="checkbox" name="Q009" id="Q009_3" value="3" /> 
    <label for="Q009_3">Text 93</label> 
</div> 
<div class="controls"> 
    <input type="checkbox" name="Q009" id="Q009_4" value="4" /> 
    <label for="Q009_4">Text 94</label> 
</div> 
<div class="controls"> 
    <input type="checkbox" name="Q009" id="Q009_5" value="5" /> 
    <label for="Q009_5">Text 95</label> 
</div> 
<div class="controls"> 
    <input type="checkbox" name="Q009" id="Q009_6" value="6" /> 
    <label for="Q009_6">Text 96</label> 
</div> 
<div id="Q009error"></div> 

jQuery मान्य फ़ाइल

errorPlacement: function(error, element) { 
    var elementForm = "", containerError = ""; 
    offset = element.offset(); 
    elementForm = element.attr("name"); 
    containerError = "#" + elementForm + "error"; 
    error.prependTo(containerError); 
    error.addClass('message'); 
} 
संबंधित मुद्दे