gpt4 book ai didi

复选框的 jQuery 验证插件 errorPlacement

转载 作者:行者123 更新时间:2023-12-03 22:00:58 25 4
gpt4 key购买 nike

我使用 jQuery 验证插件来验证我的表单。我的问题是复选框错误消息的位置。请看这张图片:

enter image description here

这是与复选框+ jQuery 验证相关的 html 部分:

<fieldset id = "q8"> <legend class="Q8"></legend>
<label> What are your favourite genres of movies?<span>*</span></label>
<div class="fieldset content">

<style type="text/css">
.checkbox-grid li {
display: block;
float: left;
width: 25%;
}
</style>

<ul class="checkbox-grid">
<li><input type="checkbox" name="q8[]" value="Action"><label for="checkgenre[]">Action</label></li>
<li><input type="checkbox" name="q8[]" value="Adventure"><label for="checkgenre[]">Adventure</label></li>
<li><input type="checkbox" name="q8[]" value="Comedy"><label for="checkgenre[]">Comedy</label></li>
<li><input type="checkbox" name="q8[]" value="Animation"><label for="checkgenre[]">Animation</label></li>
<li><input type="checkbox" name="q8[]" value="Drama"><label for="checkgenre[]">Drama</label></li>
<li><input type="checkbox" name="q8[]" value="Romance"><label for="checkgenre[]">Romance</label></li>
//Continued the same for OTHER CHECKBOXES

</div>
</fieldset>

//html for other questions...

<input class="mainForm" type="submit" name="continue" value="Save and Continue" />

</form>

<script src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script>
<script src="http://jqueryvalidation.org/files/dist/additional-methods.min.js"></script>

<script>
$(document).ready(function() {

$('#form2').validate({ // initialize the plugin
errorLabelContainer: "#messageBox",
wrapper: "li",

rules: {
"q8[]": {
required: true,
},
"q9[]": {
required: true,
},
q10: {
required: true,
},
q11: {
required: true,
},
q12: {
required: true,
}

},

errorPlacement: function(error, element) {

if (element.attr("type") == "radio") {
error.insertBefore(element);
} else {
error.insertBefore(element);

}
}

});
});
</script>

如果可以解决此问题或显示错误,有人可以帮助我吗问题旁边的消息(适用于所有输入类型)? (我的意思是与问题完全相同的行,在 * 之后)?

谢谢

最佳答案

我在您的问题的标签中添加了一个,以便更容易找到问题...

<label class="question">What are your favourite genres of movies?<span>*</span></label>

那么您只需要练习“DOM 遍历”技术即可。研究方法here .

  • $(element).parents('div') 查找 elementdiv 容器。

  • 然后 .prev($('.question')) 会将您带到 .question,它是此 div 的第一个前同级.

将它们放在一起,它会在问题后面插入错误消息。

error.insertAfter($(element).parents('div').prev($('.question')))

errorPlacement内:

errorPlacement: function (error, element) {
if (element.attr("type") == "checkbox") {
error.insertAfter($(element).parents('div').prev($('.question')));
} else {
// something else if it's not a checkbox
}
}

演示:http://jsfiddle.net/sgsvtd6y/

也许您不需要条件,因为该技术应该适用于您的所有输入类型。

errorPlacement: function (error, element) {
error.insertAfter($(element).parents('div').prev($('.question')));
}

否则,如果您的 HTML 不同,那么您可以使用条件条件并稍微修改一下 DOM 遍历。

关于复选框的 jQuery 验证插件 errorPlacement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26041435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com