jQuery 验证文本区域最大长度错误

2024-03-16

我正在使用 jQuery.validate v 1.6.0 来验证我的表单。

我的数据库字段之一限制为 1000 个字符。我向相应的文本区域添加了验证,如下所示:

在我的页面标题中,我添加

$('form.validate').validate();

在我的页面中,我声明:

<form method="post" class="validate" action="Save">
    <textarea name="description" minlength="15" maxlength="1000" id="description" class="required"></textarea>
    <input type="submit" value="Save">    
</form>

我遇到的问题是,jQuery 计算“换行”中涉及的字符数的方式似乎与我的数据库不同。

当我准确输入 1000 个字符且没有换行时,一切顺利,并且验证有效。如果我输入 1000 个字符和一些新行,jQuery 允许 POST 发生,但我的数据库拒绝插入/更新,因为数据太大。

任何提示将不胜感激。


我使用 jQuery Validate 1.9 遇到了这个特殊问题。因为我在服务器上使用 ASP.NET MVC 3 和 C#,换行符在服务器上是“\r\n”,但在客户端上是“\n”。当我在客户端上验证我的文本区域时,验证没有失败,因为“\n”仅算作一个字符,但是当文本在换行符为“\r\n”的服务器上进行验证时,验证将失败。

我对这个问题的解决方案是重写 jQuery 验证方法“rangelengt”,因为我还定义了最小长度:

$.validator.addMethod('rangelength', function (value, element) {
        var maxlen = parseInt($(element).attr('data-val-length-max'));
        if (maxlen > 0) {
            var remaining = (maxlen - (parseInt($(element).val().replace(/(\r\n|\n|\r)/gm, '\r\n').length)));
            if (remaining < 0) {
                return false;
            }
        }

        return true;
    });

因此,这段代码实际上所做的是获取 maxlength 值,然后从元素中获取该值,然后用“\r\n”替换所有“\n”字符,以获得与服务器相同的字符数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery 验证文本区域最大长度错误 的相关文章

随机推荐

  • 如何从字符串中去除 HTML 标签、CSS?

    我有字符串如 p p p align left class western p
  • 如何将linkedin api集成到Android应用程序中

    如何将 linkedin api 集成到我的应用程序中 None
  • badref 是什么意思?

    IR线是什么意思 define i32
  • 加载时时区返回 Uncaught TypeError 的时刻

    我正在努力将 Moment Timezone 实现到 Django 应用程序中 以便纠正从不同时区访问它的用户 并且在通过 Require js 导入文件时遇到错误 moment js moment timezone js 和 moment
  • 如何在 coinbase api 中导入转换?

    目前 Coinbase 支持所谓的 转换 允许从一种货币转换为另一种货币 例如 您可以将部分 BTC 转换为 XRP 在 CSV 中 它们在备注字段中返回买入和卖出金额 笔记 将 0 27235696 BTC 转换为 3 731 32313
  • HTML 名称标签

    是否可以使用标签for元素的属性name代替id 我们的应用程序存在一个错误 两个复选框具有相同的 id 单击一个复选框的标签会检查另一个复选框 由于 HTML 生成逻辑丑陋且复杂 更改 id 会很痛苦 但是 这两个复选框都有唯一的名称属性
  • javascript 中的 Math.random 如何实现随机性?

    javascript 中的 Math random 如何实现随机性 我做了一个可以从大约 50 个不同选项中随机选择的东西 我想知道使用 Math random 来获得随机性应该有多舒服 从规格来看 随机的 返回一个正数数值 符号 大于或等
  • 在容器中心添加面板

    我有一个JPanel这是一个BorderLayout我在顶部和容器中设置了一个新面板 JDesktopPane 位于中心 另一个面板位于底部 现在我想在容器中心动态设置面板 卡片布局 因为我在下面显示层次结构 top gt panel pa
  • jQuery html() 和换行符

    我使用 jQuery 和 Rails 并有以下代码 related html 我在浏览器中遇到问题 只有当部分中没有换行符时 才会替换 lated 元素的内容 这没什么大不了的 我可以将所有内容放在一行上 但这使代码非常难以阅读 有没有办法
  • 使用重命名替换文件名

    我想通过替换从 开始的所有字符后跟八个大写字母来重命名文件名 并仅保留扩展名 4585 10 148 H2A119Ub GTCTGTCA S51 mcdf mdup ngsFlt fm 4585 10 148 H3K27me3 TCTTCA
  • 通过 chrome.runtime.sendMessage 发送带有函数的对象

    我正在开发一个 chrome 扩展 我想用 chrome runtime sendMessage 发送一个对象 带有一些函数 现在做这样的事情 chrome runtime sendMessage something Funny 工作得很好
  • wget 只下载一个 index.html 文件,而不是其他大约 500 个 html 文件

    使用 Wget 我通常只收到一个 index html 文件 我输入以下字符串 wget e robots 关闭 rhttp www korpora org kant aa03 http www korpora org kant aa03
  • 在 maven-plugin-testing-harness 中注入 DefaultRepositorySystem 时出错

    我正在尝试基于现有 2 0 插件创建一个新的 Maven 3 0 3 插件 并促进 aether 获取一些依赖项 我尝试创建一个简单的测试来使用 maven plugin testing harness 版本 2 0 1 加载 mojo 但
  • Chrome 扩展:无法使 chrome.desktopCapture.chooseDesktopMedia 捕获窗口音频

    我正在尝试使用chrome desktopCapture chooseDesktopMediaAPI 用于从扩展窗口捕获音频 我从 popup js 页面发送捕获请求 显现 background scripts background js
  • 哪里与有

    为什么需要放置您自己创建的列 例如select 1 as number after HAVING并不是WHERE在 MySQL 中 不这样做有什么缺点吗WHERE 1 写出整个定义而不是列名 其他关于这个问题的回答都没有说到重点 假设我们有
  • 如何告诉继承类不要调用其基类的无参数构造函数?

    我惊讶地发现我的基类的无参数构造函数在我每次调用时都会被调用any派生类中的构造函数 我以为就是这样 base 是为了 为了明确地如果需要的话 可以调用基本构造函数 当我实例化派生类时 如何防止调用基构造函数 using System na
  • 使用 PHP 在 Mongo DB 文档中添加数据

    我想插入数据Mongo database使用 PHP 脚本 在year明智的文件 使其看起来像这样 所有年份都在一份文件中 cars 2017 car Motorolla color blue 2016 car Toyota color g
  • 自动完成未按预期渲染材质 UI

    我的自动完成组件正在从 API 中提取书籍列表 我将它们呈现为自动完成组件中的选项 并将它们输出为页面底部的列表以进行调试 还从 API 输出 JSON 两个问题似乎是交织在一起的 首先 自动完成选项似乎并不全是渲染 最多有 10 个结果
  • FileNotFoundException(未找到 DLL)

    我在一台客户的机器上遇到了奇怪的错误 它抛出 FileNotFoundException 但该 DLL 肯定就在 Executable 文件夹中 为什么找不到它 请指教 由于您没有包含完整的异常详细信息 心理调试是 32 位与 64 位不匹
  • jQuery 验证文本区域最大长度错误

    我正在使用 jQuery validate v 1 6 0 来验证我的表单 我的数据库字段之一限制为 1000 个字符 我向相应的文本区域添加了验证 如下所示 在我的页面标题中 我添加 form validate validate 在我的页