Javascript 将验证错误文本置于输入字段下方

Javascript 将验证错误文本置于输入字段下方,javascript,jquery,forms,validation,positioning,Javascript,Jquery,Forms,Validation,Positioning,我不太懂Javascript,我尝试了所有方法,但都找不到解决问题的方法 我使用这个插件进行验证,它工作得很好,但有一个小问题,它写的错误文本一直显示在输入字段旁边,我希望它显示在输入字段下面。有人可以为此修改此脚本吗?非常感谢:) ;(函数($,窗口,文档,未定义){ //我们的插件构造函数 var SimpleValidate=函数(元素、选项){ this.elem=elem; 这个.$elem=$(elem); this.options=选项; this.metadata=this.$e

我不太懂Javascript,我尝试了所有方法,但都找不到解决问题的方法

我使用这个插件进行验证,它工作得很好,但有一个小问题,它写的错误文本一直显示在输入字段旁边,我希望它显示在输入字段下面。有人可以为此修改此脚本吗?非常感谢:)

;(函数($,窗口,文档,未定义){
//我们的插件构造函数
var SimpleValidate=函数(元素、选项){
this.elem=elem;
这个.$elem=$(elem);
this.options=选项;
this.metadata=this.$elem.data('plugin-options');
this.$requiredInputs=this.$elem.find(':input.required');
};
//插件原型
SimpleValidate.prototype={
默认值:{
errorClass:'错误',
errorText:“请填写此字段。”,
emailErrorText:'请输入有效的电子邮件',
errorElement:'强',
removeLabelChar:“*”,
inputErrorClass:“输入错误”,
completeCallback:“”,
ajaxRequest:错误
},
init:function(){
var self=这个;
//引入可以扩展的默认值
//全局或使用对象文字。
self.config=$.extend({},self.defaults,self.options,self.metadata);
//它是什么类型的错误消息
self.errorMsgType=self.config.errorText.search(/{label}/);
self.emailErrorMsgType=self.config.emailErrorText.search(/{label}/);
self.elem.on('submit.simpleValidate',$.proxy(self.handleSubmit,self));
归还这个;
},
检查字段:函数(索引){
var self=这个;
变量$field=self.$requiredInputs.eq(索引);
var fieldValue=$.trim($field.val());
var labelText=$field.sibbins('label').text().replace(self.config.removeLabelChar');
var errorMsg='';
//检查邮件是否为空或无效,并格式化错误消息
如果(字段值==''){
errorMsg=self.formatErrorMsg(self.config.errorText、labelText、self.errorMsgType);
self.hasrerror=true;
}else if($field.hasClass('email')){
如果(!(/^([[U a-z0-9-]+)(\.[U a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/.测试(fieldValue.toLowerCase()){
errorMsg=self.formatErrorMsg(self.config.emailErrorText、labelText、self.emailErrorMsgType);
self.hasrerror=true;
}
}
//如果有错误,请显示它
如果(errorMsg!=''){
$field.addClass(self.config.inputErrorClass).after(“”+errorMsg+“”);
}
},
formatErrorMsg:函数(errorText、labelText、errorMsgType){
返回(errorMsgType>-1)?errorText.replace({label}',labelText):errorText;
},
handleSubmit:函数(e){
var self=这个;
//我们才刚刚开始,所以还没有错误
this.hasrerror=false;
//重置现有显示的错误
self.$elem.find(self.config.errorElement+'.+self.config.errorClass).remove();
self.$elem.find(':input.+self.config.inputErrorClass).removeClass(self.config.inputErrorClass);
//检查每个字段
self.$requiredInputs.each($.proxy(self.checkField,self));
//如果有错误,请不要提交表格
if(self.hasError){
e、 预防默认值();
}else if(self.config.completeCallback!=''){//如果有回调
self.config.completeCallback(self.$elem);
//如果AJAX请求
if(self.config.ajaxRequest){
e、 预防默认值();
}
}
}
};
SimpleValidate.defaults=SimpleValidate.prototype.defaults;
$.fn.simpleValidate=函数(选项){
返回此值。每个(函数(){
新的SimpleValidate(this,options).init();
});
};
})(jQuery、窗口、文档);

调用此函数时,只需传入参数:
errorElement:'p'
。默认情况下使用strong,这是一个内联元素。

只需替换即可

$field.addClass(self.config.inputErrorClass).after('<' + self.config.errorElement + ' class="' + self.config.errorClass + '">' + errorMsg + '</' + self.config.errorElement + '>')
$field.addClass(self.config.inputErrorClass).after(“”+errorMsg+“”)
与:

$field.addClass(self.config.inputErrorClass).after(''+errorMsg+'

'))
将此添加到CSS中:

.error { display: block; }
或者将
ErrorElement
更改为
div

  new SimpleValidate(this, {errorElement: 'div'}).init();

一个简单的解决方案可能是将
errorElement:“strong”
更改为类似
errorElement:“p”
。你也要确保你自己


如果你想学习JavaScript,我建议你看一看。

不幸的是,我无法复制你的代码,因此我很难确切地说出该怎么做。然而,在我看来,您应该围绕这段代码:

$field.addClass(self.config.inputErrorClass).after('<' + self.config.errorElement + ' class="' + self.config.errorClass + '">' + errorMsg + '</' + self.config.errorElement + '>');
$field.addClass(self.config.inputErrorClass).after(“”+errorMsg+“”);
如果我理解正确,它会在您输入后立即添加错误消息。也许您可以使用以下内容:

$field.addClass(self.config.inputErrorClass).after('<br>').after('<' + self.config.errorElement + ' class="' + self.config.errorClass + '">' + errorMsg + '</' + self.config.errorElement + '>');
$field.addClass(self.config.inputErrorClass).after(“
”).after(“”+errorMsg+“”);
“任何人都可以为此修改此脚本?”不。。。告诉我们到目前为止您尝试了什么,为什么不起作用,如果可能的话附上一个实例,您可能会得到一些帮助。应该选择正确的errorElement,或者设置正确的css样式。不改变插件的核心功能。尝试了这个和Robert建议的css方法,都有效:)非常感谢,你救了我:你是对的Robert。尝试了这个,效果很好。非常感谢你
$field.addClass(self.config.inputErrorClass).after('<' + self.config.errorElement + ' class="' + self.config.errorClass + '">' + errorMsg + '</' + self.config.errorElement + '>');
$field.addClass(self.config.inputErrorClass).after('<br>').after('<' + self.config.errorElement + ' class="' + self.config.errorClass + '">' + errorMsg + '</' + self.config.errorElement + '>');