【问题标题】:Validating a Form With jQuery in Database.. Number Fields Break在数据库中使用 jQuery 验证表单.. 数字字段中断
【发布时间】:2012-04-07 20:12:28
【问题描述】:

我正在尝试验证允许用户输入的表单,并且我正在使用下面的 jQuery 插件。

http://docs.jquery.com/Plugins/Validation/Methods

详细信息保存在后端数据库中,验证日期/电子邮件/文本条目工作正常,没有引起任何问题。

但是,每次我尝试指定数字/数字格式时,后端 php 文件都会抱怨“年龄”(数据库字段之一)的数据被截断并且不执行。

年龄在数据库中设置为一个整数,最大长度为 3.. 是什么导致它每次都中断?


我的代码 -

 jQuery(document).ready(function(){
   jQuery("#custform").validate({
      rules: {
        DateOfOrder: {
            required: true,
            dateISO: true
        }
        Age: {
            required: true,
            digits: true
        }
      }
   });
 });

我的表单元素 -

  <p>
    <label for="cname">Age</label>
    <input id="Age" name="Age" size="15" class="required" maxlength="3" /><em>*</em>
  </p>

【问题讨论】:

  • 所以后端 php 抛出警告/错误,说 Age 被截断?或者这是您制作的后端验证消息?但是 jQuery 验证插件没有针对年龄输出任何警告/错误,对吗?
  • 贴一些代码,如果我们看不到你在做什么,不知道出了什么问题
  • @Andrew Jackman 通常,当我在表单上点击提交时,它显然会弹出需要字段等。但是,当我指定“年龄”必须是数字/数字并点击提交时,它会绕过验证和抛出错误,说 Age 的值被截断。这更清楚吗?

标签: php jquery database validation


【解决方案1】:

我发现了你的问题!你少了一个逗号:

jQuery(document).ready(function(){
 jQuery("#custform").validate({
  rules: {
    DateOfOrder: {
        required: true,
        dateISO: true
    }, // This comma right here
    Age: {
        required: true,
        digits: true
    }
  }
 });
})

Here 是一个可以工作的 jsFiddle。

即使您的 javascript 出现错误,它仍然检查 required 的原因是因为您给了它class="required",这是不必要的,因为您在 jQuery 就绪函数中将其设置为 required(但导致了这个看似奇怪的错误) .

【讨论】:

  • 哇总是最基础的错误,感谢新的一双眼睛!
  • @William231 没问题!我自己确实花了几个小时来解决这些问题:p
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 2017-05-26
  • 2018-11-10
相关资源
最近更新 更多