FrontEnd 步步高升:bootstrap3-validation.js 必填项星号(*)显示方式修改

作者的GITHUB:https://github.com/mrlong/bootstrap3-validation.js,先感谢一下,很好用~

作者的样式,当表单有类为:form-horizontal  时,必填项*号显示样式很奇怪~~

作者垂直表单添加 * 源码如下:

else if(fform_style==2){

                $(obj).find('input, textarea').each(function(){
                    var el = $(this);
                    var controlGroup = el.parents('.form-group');
                    controlGroup.removeClass('has-error has-success');
                    controlGroup.find("#valierr").remove();
                    valid = (el.attr('check-type')==undefined)?null:el.attr('check-type').split(' ');
                        if (valid){
                        if ($.inArray('required',valid)>=0){
                            el.parent().after('<span class="help-block" id="valierr" style="color:#FF9966">*</span>');
<pre name="code" class="javascript">                        //在这里我们就能看到,是在input的父类的后面增加类 * 的span

} }; }); };


看了注释之后,DOM树变成了:

<div role="presentation" class="nodeBox textNodeBox "><div role="presentation" class="nodeLabel "><span role="treeitem" class="nodeLabelBox repTarget "><<span class="nodeTag ">label</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">class</span>="<span class="nodeValue editable ">col-sm-2 control-label</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">for</span>="<span class="nodeValue editable ">mail</span>"</span><span class="nodeBracket editable insertBefore ">></span><span class="nodeText editable "><span class="  ">Email</span></span></<span class="nodeTag ">label</span>></span></div></div><div role="presentation" class="nodeBox containerNodeBox open"><div role="presentation" class="nodeLabel "><span role="treeitem" class="nodeLabelBox repTarget "><<span class="nodeTag ">div</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">class</span>="<span class="nodeValue editable ">col-sm-6</span>"</span><span class="nodeBracket editable insertBefore ">></span></span></div><div role="group" class="nodeChildBox "><div role="presentation" class="nodeBox emptyNodeBox  "><div role="presentation" class="nodeLabel "><span role="treeitem" class="nodeLabelBox repTarget "><<span class="nodeTag ">input</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">id</span>="<span class="nodeValue editable ">mail</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">class</span>="<span class="nodeValue editable ">form-control</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">type</span>="<span class="nodeValue editable ">text</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">check-type</span>="<span class="nodeValue editable ">mail required</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">placeholder</span>="<span class="nodeValue editable ">[email protected]</span>"</span><span class="nodeBracket editable insertBefore ">></span></span></div></div></div><div role="presentation" class="nodeCloseLabel "><span class="nodeCloseLabelBox repTarget "></<span class="nodeTag ">div</span>></span></div></div><div role="presentation" class="nodeBox textNodeBox  "><div role="presentation" class="nodeLabel "><span role="treeitem" class="nodeLabelBox repTarget "><<span class="nodeTag ">span</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">id</span>="<span class="nodeValue editable ">valierr</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">class</span>="<span class="nodeValue editable ">help-block</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">style</span>="<span class="nodeValue editable ">color:#FF9966</span>"</span><span class="nodeBracket editable insertBefore ">></span><span class="nodeText editable "><span class="  ">*</span></span></<span class="nodeTag ">span</span>></span></div></div>

span在那个地方是因为,作者的input外面有一层DIV,而当我缩小浏览器后,* 就不就了.........而且个人感觉*显示在label旁更合理吧...

所以我改成了:

el.parent().siblings("label").append('<span id="valierr" style="color:#FF9966">*</span>');

只用找控制input宽度的父类div的兄弟label元素里增加*span就OK

此时的dom树:

<span role="treeitem" class="nodeLabelBox repTarget "><<span class="nodeTag ">label</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">class</span>="<span class="nodeValue editable ">col-md-12 col-sm-12</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">for</span>="<span class="nodeValue editable ">username</span>"</span><span class="nodeBracket editable insertBefore ">></span></span><div role="group" class="nodeChildBox "><div role="presentation" class="nodeBox "><span class="nodeText editable "><span class="  ">用户名</span></span></div><div role="presentation" class="nodeBox textNodeBox "><div role="presentation" class="nodeLabel "><span role="treeitem" class="nodeLabelBox repTarget "><<span class="nodeTag ">span</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">id</span>="<span class="nodeValue editable ">valierr</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">style</span>="<span class="nodeValue editable ">color:#FF9966</span>"</span><span class="nodeBracket editable insertBefore ">></span><span class="nodeText editable "><span class="  ">*</span></span></<span class="nodeTag ">span</span>></span></div></div></div><div role="presentation" class="nodeCloseLabel "><span class="nodeCloseLabelBox repTarget "></<span class="nodeTag ">label</span>></span></div><div role="presentation" class="nodeBox containerNodeBox open"><div role="presentation" class="nodeLabel "><span role="treeitem" class="nodeLabelBox repTarget "><<span class="nodeTag ">div</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">class</span>="<span class="nodeValue editable ">col-md-6 col-sm-6</span>"</span><span class="nodeBracket editable insertBefore ">></span></span></div><div role="group" class="nodeChildBox "><div role="presentation" class="nodeBox emptyNodeBox  "><div role="presentation" class="nodeLabel "><span role="treeitem" class="nodeLabelBox repTarget "><<span class="nodeTag ">input</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">id</span>="<span class="nodeValue editable ">username</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">class</span>="<span class="nodeValue editable ">form-control</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">type</span>="<span class="nodeValue editable ">text</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">required-message</span>="<span class="nodeValue editable ">请输入用户名...</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">maxlength</span>="<span class="nodeValue editable ">20</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">minlength</span>="<span class="nodeValue editable ">6</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">check-type</span>="<span class="nodeValue editable ">required</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">placeholder</span>="<span class="nodeValue editable ">用户名</span>"</span><span class="nodeAttr editGroup "> <span class="nodeName editable ">name</span>="<span class="nodeValue editable ">username</span>"</span><span class="nodeBracket editable insertBefore ">></span></span></div></div></div><div role="presentation" class="nodeCloseLabel "><span class="nodeCloseLabelBox repTarget "></<span class="nodeTag ">div</span>></span></div></div>
时间: 2024-12-29 05:20:42

FrontEnd 步步高升:bootstrap3-validation.js 必填项星号(*)显示方式修改的相关文章

表单验证必填项

在表单验证中,会有一些必填项,如手机号,密码,昵称,验证码等,如果某项为空,或格式不正确表单将无法提交.在此我只做了手机号和密码的验证,其他的与此类此 html代码: <form action="" onsubmit="return check_sub()"> <p class="tel"> <label for="tel">手机</label> <input type=&

DEDECMS织梦自定义表单中必填项、电话邮箱过滤以及验证码规则

织梦自定义表单必填项规则--->(wwwshu-acca.com网站表单) 1. 在plus/diy.php 的第 40行下加如下代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 //增加必填字段判断 if($required!=''){     if(preg_match('/,/', $required)){         $requireds = explode(',',$required);         foreach($requireds

将ECSHOP会员注册页面的Email修改成非必填项

将ECSHOP会员注册页面的Email修改成非必填项 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2011-07-29 有人说,在后台的 “会员注册项设置 ”里面不是可以控制是否必填吗??我就碰到好几个人这么说过.其实是他看问题不认真,这里说的是“将会员注册页面的email修改成非必填项”,注意是 email , 那个"会员注册项设置"里是不包括EMAIL的 闲话少叙,下面就来说一下方法,注意此方法是在Ecshop2.7.2版上修改的,针对以前版本的修

jquery-easyui必填项隐藏问题的处理方案

转自:http://www.2cto.com/kf/201311/260304.html 使用jquery-easyui制作用户界面,必填项很简单,只需要一个简单的属性data-options="required:true" 就可以把一个输入变成必输项. 但实际问题却是,在某些情况下,即使隐藏了必输项,却依然没办法提交,提交时弹出有必输项没有输入!! 使用jquery-easyui的方法就是如果隐藏了,就把必输项标志去掉.也就是使用类似如下的代码. [javascript] $('#D

将会员注册页面的Email修改成非必填项(ecshop2.7.2版)

"将ECSHOP会员注册页面的email修改成非必填项",注意是 email , 那个"会员注册项设置"里是不包括EMAIL的 闲话少叙,下面就来说一下方法, 注意此方法是在官方默认模板上修改的 1). 首先来修改模板文件, 这里以官方默认模板为例 打开 /themes/default/user_passport.dwt 文件 找到 onblur="checkEmail(this.value);" 将其删除,继续向下找到 <span id=

lay-verify进行非必填项校验

它默认都验证了! 需要调整源码!form.js,layui.all.js this.config = { verify: { required: [/[\S]+/, "必填项不能为空"], phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"], email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"]

【铜】第135篇 一对一视频录制(二)及必填项红色星标及隐藏index.php及必选项不能为空 周一

关键词:一对一视频录制, 必填项红色星标, 隐藏index.php, 必选项不能为空 一.一对一视频录制 1.1 需要做的 二.我的网站 2.1 必填项红色星标 代码如下: <spanstyle="color:red;">*</span> 效果如下: 2.2 隐藏index.php 1)开启mod_rewrite.so LoadModule rewrite_modulemodules/mod_rewrite.so 注:去掉前面的#,重启apache即可. 2)如

Mantis 1.1.0 报告问题中设置必填项或取消必填项[Z]

打开/mantis/core/bug_api.php,其中有类似下面的语句 if ( is_blank( $c_summary ) ) {    error_parameters( lang_get( 'summary' ) );    trigger_error( ERROR_EMPTY_FIELD, ERROR );   } 找到相应的变量添加上此句即可设置该变量对应的内容为必填项,取消的话就注释掉即可. Mantis 1.1.0 报告问题中设置必填项或取消必填项[Z],布布扣,bubuko

ExtJS4为form表单必填项添加红色*标识

通常情况下,ExtJS4的form表单必填项在输入状态下会有特殊提示,非输入状态下,显示却和其他项没有任何区别.为使必填项更加容易区分,我们需要根据allowBlank的属性值,为form表单中的必填项添加红色*标识 在ExtJS4的form表单中,常用组件的继承关系图1-1: //为form表单中必填项添加红色*号标志 Ext.override(Ext.form.field.Base,{ //针对form中的基本组件 initComponent:function(){ if(this.allo