Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无遮拦的“忽略”设置无效

无遮拦的“忽略”设置无效
EN

Stack Overflow用户
提问于 2016-02-18 05:13:44
回答 2查看 1.2K关注 0票数 0

这有点奇怪。因此,在为非突出验证的ignore对象设置settings属性方面存在许多问题。

场景:我通过在MVC中迭代模型生成了一个表,我通过在服务器端插入一个空白模型来自动填充底部的空白行(这是需求的一部分,是不可协商的)。我不想验证这个空行,如果用户没有碰过它,但如果他们有。

为了解决这个问题,我正常地生成表。使用jquery,我自动用“空白”类标记任何空白行。通过查看源,我可以看到这种情况只发生在表中的空白行中。

现在,如果在document.read()中调用我拥有的客户机;

代码语言:javascript
运行
AI代码解释
复制
$.validator.unobtrusive.parse('form');
var form = $('form').get(0);
var settings = $.data(form, 'validator').settings;
settings.ignore = ':hidden,.blank';

这个很好用。即使我添加了新的提交,点击submit也不会触发对空白行的验证。但是,除了第一行之外,没有对任何填充行进行验证。

为了解决这个问题,我创建了一个函数reattachValidation(),每当我添加一个新行时都会调用该函数,以便为新行触发验证。对该守则作了修改,以便:

代码语言:javascript
运行
AI代码解释
复制
function reattachValidation() {
    var forms = $('form');
    forms.removeData('validator');
    forms.removeData('unobtrusiveValidation');

    $.validator.unobtrusive.parse('form');
    var form = $('form').get(0);
    var settings = $.data(form, 'validator').settings;
    settings.ignore = ':hidden,.blank';
}

现在,上面的代码将验证任何动态添加到表中的新行,但也将验证在相关元素上仍然有一个“空白”类的空白行。因此,我既不能验证空行,也不能验证新行,或者可以验证所有行,包括那些带有标记为“空白”的元素的行。

如何在使用用户数据验证新行的同时忽略空白行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-21 08:12:19

我最终还是成功了。

在javascript中;

代码语言:javascript
运行
AI代码解释
复制
$(function() {
    $.validator.unobtrusive.parse("form");
    var form = $("form").get(0);
    var settings = $.data(form, "validator").settings;
    settings.ignore = ":hidden,.blank";
});

// This function will attach any dynamic entity (e.g., a new row in a grid) to the
// MVC unobtrusive validator to be validated at the appropriate time.
// Usage:    $.validator.unobtrusive.parseDynamicContent(newTableRow);
(function ($) {
    $.validator.unobtrusive.parseDynamicContent = function (selector) {
        //use the normal unobstrusive.parse method
        $.validator.unobtrusive.parse(selector);

        //get the relevant form
        var form = $(selector).closest("form");

        //get the collections of unobtrusive validators, and jquery validators
        //and compare the two
        var unobtrusiveValidation = form.data("unobtrusiveValidation");
        var validator = form.validate();

        $.each(unobtrusiveValidation.options.rules, function (elname, elrules) {
            if (validator.settings.rules[elname] == undefined) {
                var args = {};
                $.extend(args, elrules);
                args.messages = unobtrusiveValidation.options.messages[elname];
                //edit:use quoted strings for the name selector
                $("[name='" + elname + "']").rules("add", args);
            } else {
                $.each(elrules, function (rulename, data) {
                    if (validator.settings.rules[elname][rulename] == undefined) {
                        var args = {};
                        args[rulename] = data;
                        args.messages = unobtrusiveValidation.options.messages[elname][rulename];
                        //edit:use quoted strings for the name selector
                        $("[name='" + elname + "']").rules("add", args);
                    }
                });
            }
        });
    }
})($);

然后在添加新的动态元素时,这样做(动画是不必要的,但对parseDynamicContent()的调用是这样的;

代码语言:javascript
运行
AI代码解释
复制
selectedTableRow.after(newTableRow);
newTableRow.fadeIn(500, function () {
    // reattach the MVC validation after adding a new row so that we get our client
    // side validation on the data annotations.
    // NOTE: we do this AFTER the fade in animation as by default the validator will
    //       not hook into any hidden elements - which our row is until the animation
    //       completes.
    $.validator.unobtrusive.parseDynamicContent(newTableRow);
});
票数 0
EN

Stack Overflow用户

发布于 2018-08-21 15:39:31

您可以通过在原来的标准方法中添加一行来使忽略工作。这涉及使用jquery .off()删除绑定到表单的提交事件。需要这样做的原因是,先前的验证器对象的实例被绑定到提交事件,并且由于javascript闭包的工作方式,它们没有被更新。

代码语言:javascript
运行
AI代码解释
复制
$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$("form").off("submit.validate"); //new line

$.validator.unobtrusive.parse("form");

$("form").validate().settings.ignore = ":hidden, .blank";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35482471

复制
相关文章
C语言__attribute__ ((constructor))和__attribute__ ((destructor))
一、gcc为函数提供了几种类型的属性,其中包含:构造函数(constructors)和析构函数(destructors),可带优先级。
IT工作者
2022/05/20
2.1K0
浅谈 __attribute__
__attribute__ 是一个编译器指令,其实是 GNU C 的一种机制,本质是一个编译器的指令,在声明的时候可以提供一些属性,在编译阶段起作用,来做多样化的错误检查和高级优化。用于在 C、C++、Objective-C 中修饰变量、函数、参数、方法、类等。
s_在路上
2019/03/08
5.9K0
iOS_ __attribute__
__attribute__ 编译器属性机制,用于向编译器描述特殊得标识、检查或优化。 语法关键字是__attribute__紧跟2套圆括号,括号内是一个以逗号分隔的属性列表。 __attribute__指令被放在类前、函数/变量声明后面。
mikimo
2023/10/18
2860
常用的gcc的__attribute__
当我学习brpc。浏览代码,查看许多“ __attribute__使用过的地方”。
mariolu
2021/03/29
2.1K0
__attribute__机制介绍
__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)
阳光岛主
2019/02/19
3K0
使用GDAL/OGR读写矢量文件
感觉GIS中矢量相关内容还是挺庞杂的,并且由于版本迭代的关系,使用GDAL/OGR读写矢量的资料也有点不太一样。这里总结了一个读写矢量的示例,实现代码如下:
charlee44
2019/09/29
1.3K0
使用GDAL/OGR读写矢量文件
弱符号__attribute__((weak))
弱符号是什么? 弱符号: 若两个或两个以上全局符号(函数或变量名)名字一样,而其中之一声明为weak symbol(弱符号),则这些全局符号不会引发重定义错误。链接器会忽略弱符号,去使用普通的全局符号来解析所有对这些符号的引用,但当普通的全局符号不可用时,链接器会使用弱符号。当有函数或变量名可能被用户覆盖时,该函数或变量名可以声明为一个弱符号。弱符号也称为weak alias(弱别名)。 attribute((weak))的作用 情况是这样的,碰到一个棘手的问题:我们不确定外部模块是否提供一个函数func
233333
2018/07/05
6.6K0
iOS小技能:__attribute__的应用
LLVM和其他 GCC 特性一样,Clang 支持了 __attribute__, 还加入了一小部分扩展特性。
公众号iOS逆向
2022/08/22
3560
iOS小技能:__attribute__的应用
使用Fiona创建Shapefile矢量数据
使用Fiona写入Shapefile数据,主要是构建一个Schema,然后将空间对象转为GeoJSON的形式进行写入。
卡尔曼和玻尔兹曼谁曼
2019/01/22
1.7K0
C语言之——__attribute__
__attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关 。
用户4645519
2020/09/07
1.1K0
属性“__attribute__”在Objective-C中的应用
      关于__attribute__,你可能用的不多,但是一定经常见到,在系统的Foundation框架中,__attribute__的使用非常频繁。首先,__attribute__用于在函数,变量或类型声明时进行特殊属性设置的编译器指令。需要注意,它是一种编译器指令,这也就表明了使用它我们可以做更高级的检查与优化功能。
珲少
2020/04/28
2.4K0
属性“__attribute__”在Objective-C中的应用
[译] 在 Android 应用中使用矢量资源
在之前的文章中,我们研究了 Android 的 VectorDrawable 图像格式以及它能够实现的功能:
Android 开发者
2019/05/14
1.5K0
iOS 编译器__Attribute__的入门指南
作者:小朋鸟 一、Attribute Attribute 是 GNU C 的一大特色。 所以这对于iOS来说这是一个什么东西? 这是一个可以给对象或函数声明特性的编译器指令,目的是让编译器做更多的错误检查和优化。 可设置函数属性(Function Attribute)、变量属性(Variable Attribute)、类型属性(Type Attribute) Swift 文档中的说明: Attributes provide more information about a declaration or ty
37手游iOS技术运营团队
2021/12/31
9870
iOS 编译器__Attribute__的入门指南
矢量数据的处理
  矢量数据就是点、线、面和注记,不能是栅格,也不能是TIN等数据,矢量数据的处理和分析基本原理如下。
小孙同学
2022/01/17
2.1K0
矢量数据的处理
geotrellis使用(八)矢量数据栅格化
目录 前言 栅格化处理 总结 参考链接 一、前言        首先前几天学习了一下Markdown,今天将博客园的编辑器改为Markdown,从编写博客到界面美观明显都清爽多了,也能写出各种样式的东西了,有关Markdown,网上内容很多,暂且不表,开始进入今天的主题。        前几天碰到一个任务,需要将矢量数据导入到Accumulo中,然后通过geotrellis进行调用。这一下又犯难了,之前处理的全是raster数据,通过ETL类可以直接进行导入生成金字塔等,如何将矢量数据导入平台之前未曾碰到,
魏守峰
2018/04/28
1.8K0
geotrellis使用(八)矢量数据栅格化
#define sec(x) __attribute__((section(#x),used))
#define sec(x) __attribute__((section(#x),used))
心跳包
2020/08/31
1.6K0
#define sec(x) 			__attribute__((section(#x),used))
矢量函数
一个由三个变量组成的函数w = f(x,y,z)表示如何根据x,y,z来确定w的值。从几何角度更有利于对这个概念的理解:在空间笛卡尔坐标系下取一点,坐标为(x,y,z),函数w = f(x,y,z)告诉我们如何将一个点和一个数联系起来。例如:一个函数T(x,y,z)可以表明空间任意一点的温度。 以上提到的函数f(x,y,z)和T(x,y,z)是标量函数,即在函数T(x,y,z)中给x,y,z赋值得到的结果是温度,温度是标量。矢量函数的一般形式简单明了。在三维空间中的一个矢量函数是一个将每个点(x,y,z)和
fem178
2018/04/08
3.8K0
矢量函数
osgEarth使用笔记4——加载矢量数据
前面文章加载的底图数据是一种栅格数据,还有一种很重要的地理信息表现形式是矢量数据。在osgEarth中,这部分包含的内容还是很丰富的,这里就总结一二。
charlee44
2020/10/10
3.4K2
osgEarth使用笔记4——加载矢量数据
python中使用矢量化替换循环
所有编程语言都离不开循环。因此,默认情况下,只要有重复操作,我们就会开始执行循环。但是当我们处理大量迭代(数百万/十亿行)时,使用循环是一种犯罪。您可能会被困几个小时,后来才意识到它行不通。这就是在 python 中实现矢量化变得非常关键的地方。
程序那些事儿
2023/03/07
1.7K0
python中使用矢量化替换循环
编译器特性 _attribute__((packed))
从BLE(低功耗蓝牙)设备上收到数据(16进制的数据流),<840100ec d5045715 00010014 00240018 00>,17个bytes(字节),然后我定义了一个结构体去接数据:
iOS Development
2019/02/14
2.6K0

相似问题

英特尔自动矢量法旅行计数解释?

21

使用__attribute__和typedef

15

__attribute__((包装))和__attribute__((__packed__))

10

关于使用__attribute__(格式(Printf)

11

如何使用__attribute__((visibility(“default”)?

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文