2010-10-27 6 views
10

Onay kutum var ve şöyle bir metin izler;
[onay kutusu] Ben teslim ederken onay kutusu tıklandığında değilse, ben hata msg gösteren güncel yoludurjquery - belirli bir öğe için errorPlacement nasıl kullanılır?

katılıyorum (Ben errorElement kullanın: "div");

[onay kutusu]
Bu alan gereklidir.
Katılıyorum **

Bunu yapmayı tercih ediyorum;
[onay kutusu] Ben
Bu alan katılıyorum

bu halletmek için nasıl bir fikriniz gereklidir ?.

Söz konusu onay kutusu ve elimde bulunan metin öğeleri için html sargısı şunun gibidir;
[div] [onay kutusu] I [/ div] [div] [/ div]

Ben errorPlacment çalıştı katılıyorum: yalnız o elemanı için uygulamak için umut aşağıdaki gibi;

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


O çalışmadı. Herhangi bir fikir?.

cevap

22

errorPlacement küresel bir seçenek, (bir seçenek olarak) değil altına mesajlar, bu nedenle bunun yerine bu gibi görünmelidir: nereye gittiğini karar verirken

İşte
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); 
    } 
} 

biz sadece öğe adı kontrol ediyoruz ediyor Yine de, örneğin bir sınıf gibi davranan herkese ve element.hasClass("placeAfter")'u yaparak başka bir çek de yapabilirsiniz. Büyü gibi

+0

İşleri, teşekkürler! – freedayum

+1

+ 1, güzel açıklama – SagarPPanchal

0

dosya html

<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 validate dosyası

errorPlacement: function(error, element) { 
    var elementForm = "", containerError = ""; 
    offset = element.offset(); 
    elementForm = element.attr("name"); 
    containerError = "#" + elementForm + "error"; 
    error.prependTo(containerError); 
    error.addClass('message'); 
}