惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
有赞技术团队
有赞技术团队
量子位
N
Netflix TechBlog - Medium
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
Martin Fowler
Martin Fowler
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
V
V2EX
IT之家
IT之家
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

jQuery

油猴脚本能拦截$(document).ready 吗? jquery 有什么树形可编辑表格的插件吗? Jquery Datatable 前端分页 Checkbox 跨页全选的问题 想提取 jQuery 中的一些函数单独使用,有什么好方法吗 有没有小的简单的 jquery 路由 关于 JQuery.load(html)加载 html,导致父 html 的$.fn 以及$.unbind 失效的问题 <script id="aaa" src="xxx.com/foo.js"></script> 用 $.getScript(...) 可以把 id="aaa" 一起设置进去吗? 为什么我的 select 的 change 事件会失效? 初学者在做做登陆界面使用 jQuery ajax()方法时直接出现 error, XMLHttpRequest.status=0,XMLHttpRequest.readyState=0,textStatus=error 请教一个 jquery contextmenu 问题,不同事件源怎么合到一个菜单里 jQuery.extend 在深复制时,为什么需要判断 isPlainOjbect?(不是问 isPlainOjbect 方法的原理) jquery 通过 ajax 返回新的 url 给前端重定向算前后端分离吗? 前端 websocket 实时接收到音频流数据,如何在 web 端实时播放 scrollTop()引发的一个操作问题 jQuery 选择特定尺寸图片问题 如何在提交表单后获取到动态添加的 inpu 的值 pdfObject 怎么监听进度 能帮我找找这个页面的细节 和 尺寸是那个 ajax 和 url 加载的吗? 问个 Jquery 的选择元素的问题 jQuery UI dialog 有熟悉的么,我想问个问题 实现滚动条离顶端一定距离之后异步加载广告 求指点 Refused to set unsafe header "cookie" 问个 JQ 的选择节点的问题 jquery 如何实现点击 p( class=‘aa’,没有 id)而选中 p 里面的文字? 可以用 jquery 模拟键盘按键吗? 外行请教京东 618 寻金记是怎么实现的? 请教 jquery 跟换图片地址后展示的问题 function 返回 ajax 结果 Jquery 在移动端如何让返回能够不刷新页面? jq ajax 返回的数据怎么获取其中一部分?
使用 jquery.validate 插件对动态新增的表单进行校验
fanne · 2020-05-13 · via jQuery

目前提交表单的时候只会对第一行表单能生效,新增的表单无法校验

如何对动态生成的表单进行同步校验?

<script src="{% static 'js/jquery-2.1.1.js' %}"></script>
<script src="{% static 'js/bootstrap.js' %}"></script>
<script src="{% static 'js/jquery.validate.js' %}"></script>
<script src="{% static 'js/messages_zh.min.js' %}"></script>
<script type="text/javascript" src="{% static 'js/jquery.editable-select.min.js' %}"></script>
<form class="form-horizontal" id="jsStayForm" method="post">
    <table>
        <tr id="tradds">
            <td>
                <select class="form-control m-b" name="virtual_cpu" id="virtual_cpu" autocomplete="off">
                        {% for  cpu_i in cpu_list %}
                            <option value="{{ cpu_i }}">{{  cpu_i  }}</option>
                        {% endfor %}
                </select>
            </td>
            <td>
                <select class="form-control m-b" name="virtual_mem" id="virtual_mem" autocomplete="off">
                        {% for  mem_i in mem_list %}
                            <option value="{{ mem_i }}">{{  mem_i  }}</option>
                        {% endfor %}
                </select>
            </td>
    </table>
    <button class="btn btn-primary" type="button" id="addCenterIpGrpBtn" onclick="addCenterIpGrp(this)">新增一行</button>
    <button class="btn btn-primary btn-danger"  id="jsStayBtn">添加虚拟机</button>
</form>

<script type="text/javascript">

##此处是进行使用插件,对下拉菜单进行可输入扩展
$('#virtual_cpu').editableSelect({
	effects: 'slide'
});

$('#virtual_mem').editableSelect({
	effects: 'slide'
});


### 此处对需要动态添加输入表单进行扩展
var varCount =1;
function addCenterIpGrp(obj) {
    varCount++;
    console.log(varCount);
    html = '<tr id="tradds">\n' +
        '    <td>\n' +
        '        <select class="form-control" name="virtual_cpu" id="virtual_cpu' + varCount + '" autocomplete="off">\n' +
        '                {% for  cpu_i in cpu_list %}\n'+
            '                    <option value="{{ cpu_i }}">{{  cpu_i  }}</option>\n'+
            '                {% endfor %}\n' +
        '        </select>\n' +
        '    </td>\n' +
        '    <td>\n' +
        '        <select class="form-control m-b" name="virtual_mem" id="virtual_mem' + varCount + '" autocomplete="off">\n' +
        '                {% for  mem_i in mem_list %}\n'+
            '                    <option value="{{ mem_i }}">{{  mem_i  }}</option>\n'+
            '                {% endfor %}\n' +
        '        </select>\n' +
        '    </td>\n' +
        '</tr>';

    ### 动态新增表单
    var d1 = document.getElementById('tradds');
    d1.insertAdjacentHTML('afterend', html);

    $("#virtual_cpu" + varCount).editableSelect({
        effects: 'slide'
    });

    $("#virtual_mem" + varCount).editableSelect({
        effects: 'slide'
    });


   ### 在此处,对动态添加的表单使用 jquery.validate 校验
    $("#virtual_cpu" + varCount).rules("add", {
        required: true,
        digits: true,
        min: 1,
        max: 64,
        messages: {
            digits: "请输入正整数"
        }
    });
}


##对整体表单进行校验
$("#jsStayForm").validate({
    rules:{
        virtual_cpu:{
            required:true,
            digits:true,
            min:1,
            max:64,
        },
        virtual_mem:{
            required:true,
            digits:true,
            min: 1,
            max: 128,
        },
        
    submitHandler:function(form) {
        alert('ddd');

        $.ajax({
            .....
        });

    }
});

<script>

image