2010-10-27 25 views
10

Tôi có hộp kiểm và văn bản theo sau nó, như;
[checkbox] Tôi đồng ýjquery - cách sử dụng errorPlacement cho một phần tử cụ thể?

Nếu hộp kiểm không nhấp khi nộp, cách hiện tại của thể hiện msg lỗi tôi có là (tôi sử dụng errorElement: "div");

[hộp kiểm]
Trường này là bắt buộc.
Tôi đồng ý **

Tôi muốn;
[checkbox] Tôi đồng ý
lĩnh vực này là cần thiết

Bất kỳ ý tưởng làm thế nào để thực hiện điều này ?.

Bọc html cho hộp kiểm có liên quan và các yếu tố văn bản mà tôi có là như thế này;
[div] [checkbox] Tôi đồng ý [/ div] [div] [/ div]

tôi đã cố gắng errorPlacment: như sau hy vọng sẽ áp dụng nó chỉ cho yếu tố đó một mình;

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


Nó không hoạt động. Bất kỳ ý tưởng?.

Trả lời

22

errorPlacement không phải là thông điệp bên dưới (như là một tùy chọn), đó là một lựa chọn toàn cầu, vì vậy thay vì nó sẽ giống như thế này:

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); 
    } 
} 

Dưới đây là chúng tôi chỉ kiểm tra tên nguyên tố khi quyết định nơi nó đi , bạn có thể làm một kiểm tra khác mặc dù, ví dụ cho tất cả những người hành xử như thế này một lớp học, và làm element.hasClass("placeAfter").

+0

trình như một say mê, cảm ơn! – freedayum

+1

+1, giải thích hay – SagarPPanchal

0

tập tin 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 tập tin Validate

errorPlacement: function(error, element) { 
    var elementForm = "", containerError = ""; 
    offset = element.offset(); 
    elementForm = element.attr("name"); 
    containerError = "#" + elementForm + "error"; 
    error.prependTo(containerError); 
    error.addClass('message'); 
} 
Các vấn đề liên quan