入门级的js隐式开发和表单校验

1 篇文章 0 订阅

1、理解:js隐式开发就是在标签中写特定属性和属性值,然后js中通过选择器,选择带有特定属性值的标签,进行操作,至此凡是带有了指定的属性,亦或被匹配到的标签都会执行特定的js代码,进行逻辑处理,从表面上来说给标签赋予了动态行为,这就是隐式开发。
2、使用隐式开发,进行表单校验。在这里有两层含义,表单校验和隐式表单校验,因此需要两个相应的js文件外加一个Juqery文件,我这里也给你们提供,有需要的可自取
https://pan.baidu.com/s/1JDaJXJDQg4MQJrOjITJuTA 提取码:7iwz
3、使用

标签属性含义
data-val=“true”必须的,表示要对表单进行数据校验
data-val-required="*"表示字段是必填字段,如果为空就会提示*
data-val-regex="*用户格式不正确"正则式验证
data-val-regex-pattern="^[a-zA-Z]\w{5,17}$"指定验证正则表达式
data-val-equalto="*两次密码不一致"一致性验证,通常用户确定密码
data-val-equalto-other="*.UPwd"指定参考的标签,用Name,如此处是与name=UPwd做对比
data-val-date="*日期格式不正确"日期格式校验
data-val-range=“商品金额范围不正确”数值范围校验
data-val-range-min=“0”指定最小数值
data-val-range-max=“100000000”指定最大数值

4、使用案例

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="gbk">
    <title></title>
</head>
<body>
    <form action="#">
        <div class="inputbox">
            <label for="user">用户名:</label>
            <input id="user" type="text" name="LoginName" data-val="true" data-val-required="*必须项" />
            <span data-valmsg-for="LoginName" data-valmsg-replace="true" style="color:red;font-size:12px"></span>
        </div>
        <div class="inputbox">
            <label for="mima">密码:</label>
            <input id="mima" type="password" name="LoginPwd" placeholder="请输入密码" data-val="true" data-val-required="*" />
            <span data-valmsg-for="LoginPwd" data-valmsg-replace="true" style="color:red;font-size:12px"></span>
        </div>
        <div class="inputbox">
            <label for="mima">确定密码:</label>
            <input id="mima" type="password" name="RLoginPwd" placeholder="请输入确定密码" data-val="true" data-val-equalto="*两次密码不一致" data-val-equalto-other="*.LoginPwd" />
            <span data-valmsg-for="RLoginPwd" data-valmsg-replace="true" style="color:red;font-size:12px"></span>
        </div>
        <div class="subBtn">
            <input type="submit" value="登录" />
            <input type="reset" value="重置" />
        </div>
    </form>
</body>
</html>
<script src="./js/jquery.js"></script>
<script src="./js/jquery.validate.js"></script>
<script src="./js/jquery.validate.unobtrusive.js"></script>

5、自定义隐式开发库,关键点在于js中标签的定位,这里有几个博主自己写的隐式开发,技术有限仅供参考,因为隐式开发,不依托于事件触发,而是依托于标签中的属性给标签注册事件,所以隐式开发的代码均放在页面加载事件中即$(function(){ } );

(1)表单提交,只要在表单的input标签中,添加属性submit=true,即赋予了该标签点击提交表单的功能,该提交调用了check_all自定义表单验证方法
    // 使用带有属性submit=true的from提交
    $("form input[submit=true]").click(function () {
        if (check_all(this)) {
            $("form").submit();
        } 
    });
(2)给下拉框或者radio单选框设置默认值,添加属性impl-dev=true,已经selectValue指定要选中的选项value,就可设置该项为选中项
    // 隐式开发,为带有impl-dev=true  selectValue赋选择初值
    $("[impl-dev=true][selectValue]").each(function () {
        var value = $(this).attr("selectValue");
        $(this).children("option[value=" + value + "]").attr("selected", "selected");
        $(this).children("input:radio[value=" + value + "]").attr("checked", "checked");
    });

使用案例

        <div impl-dev="true" selectValue="2">
            <label>用户类别:</label>
            <input type="radio" name="UCategory" value="1" />管理员
            <input type="radio" name="UCategory" value="2" />经理
            <input type="radio" name="UCategory" value="3" />普通用户
        </div>
(3)点击跳转,类似于超链接,但是可以指定参数,获取输入,转为参数,使用条件:impl-dev=true,link-to指定跳转的url,para-from=name指定参数来源,使用标签的name属性指定
    // <input type="button" value="查询" impl-dev=true link-to="UserInfo/Index"  para-from="findName"/>
        $("[impl-dev=true][link-to]").click(function () {
            var link = $(this).attr("link-to") + "?";
            $("[name=" + $(this).attr("para-from") + "]").each(function () {
                link += $(this).attr("name") + "=" + $(this).val() + "&";
            });
            link = link.substring(0, link.length - 1);
            $(window).attr('location', link);
        });

使用案例

<input type="text" name="paramTest" value="" />
<button impl-dev="true" link-to="file:///F:/代码/隐式校验案例/Login.html" para-from="paramTest">点击</button>
(4)隐式开发,设置第几个li为active
    // 隐式开发,设置第几个li为active
    $("[impl-dev=true][active-index] li:nth-child(" + $("[impl-dev=true][active-index]").attr("active-index") + ")").attr("id", "active");
(5)页面加载时,发送ajax请求,返回json数据,用于下拉框展示,json数据key作为自动生成option的value值,value就作为option的文本,使用要求impl-dev=“true”,data-url=ajax请求路径,load-one="true"加载一次,auto-tag=“option” 自动生成的标签,selectValue=设置默认选中项,ajax请求必须要返回json格式字符串
    if ($("[impl-dev=true][data-url][load-one=true][auto-tag]").attr("data-url") != undefined) {
        var node = $("[impl-dev=true][data-url][load-one=true][auto-tag]");
        var str = node.html();
            var url = node.attr("data-url");
            var tag = node.attr("auto-tag");
            var selectValue = node.attr("selectValue");
            $.get(url, {}, function (data) {
                for (var key in data) {
                    if (key == selectValue) {
                        str += "<" + tag + " value=" + key + " selected=selected>" + data[key] + "</" + tag + ">";
                    } else {
                        str += "<" + tag + " value=" + key + ">" + data[key] + "</" + tag + ">";
                    }     
                }
                node.html(str);
            }, "json");
    }

使用案例

        <span>供应商:</span>
        <select name="proId" id="proId" impl-dev="true" data-url="../Util/AjaxGetAllPro" load-one="true" auto-tag="option" selectValue="@ViewData["proId"]">
            <option value="">--请选择--</option>
        </select>
(6)ajax单校验,适用于用户名或手机号等是否已存在,当输入框失去焦点时,就会自动发送ajax请求,验证是否合法,使用要求,data-val=true,ajax-url指明ajax请求地址,ajax请求参数为ajaxparam接收时要注意,返回值为ok则表明验证成功,否则验证失败。ajax-check-msg表示验证失败的提示,建议根据案例修改
    $("[data-val=true][ajax-url]").blur(function () {
        if (check(this)) {
            var name = $(this).attr("name");
            var msg = $(this).attr("ajax-check-msg");
            $.post($(this).attr("ajax-url"), { ajaxparam: $(this).val() }, function (data) {
                if (data != "ok") {
                    $("[data-valmsg-for=" + name + "]").html(msg);

                } else {
                    $("[data-valmsg-for=" + name + "]").html("");
                }
            });
        }
    });

使用案例

        <div>
            <label for="UPhone">用户电话:</label>
            <input type="text" name="UPhone" id="userphone" ajax-check-msg="*该手机号已存在" ajax-url="../Util/AjaxCheckPhone" />
            <span data-valmsg-for="UPhone" data-valmsg-replace="true">*</span>
        </div>
(7)check()方法,字段验证方法,验证当前输入字段是否符合校验,返回结果,验证原理就是检测该字段下的span[data-valmsg-for]标签中的html文本是否为空,为空验证成功,否则验证失败
function check(ev) {
    var name = $(ev).attr("name");
    if ($(ev).val() != "" && $("span[data-valmsg-for=" + name + "]").html() == "") {
        return true;
    } else {
        return false;
    }
}
(8) check_all(),判断当前表单中的字段是否都输入合法,如果合法返回true,不合法返回false,可借此在表单提交时做出判断,全部合法则跳转。
// 判断是否通过校验
function check_all(ev) {
    var form = $(ev).parents("form");
    var b = true;
    form.find("span[data-valmsg-for]").each(function () {
        if ($(this).html() != "" || $("[name=" + $(this).attr("data-valmsg-for") + "]").val() == "") {
            return b = false;
        }
    });
    return b;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值