首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当按钮位于表单外部时,jQuery验证无效

是因为jQuery验证插件默认只会对表单内部的元素进行验证。当按钮位于表单外部时,验证插件无法正确识别表单元素,导致验证无效。

解决这个问题的方法是使用jQuery的自定义验证规则。可以通过自定义验证规则来验证表单外部的元素。

以下是一个示例代码,演示如何使用自定义验证规则来验证表单外部的按钮:

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
  <title>jQuery验证示例</title>
  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  <script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
  <script>
    // 自定义验证规则
    $.validator.addMethod("customValidation", function(value, element) {
      // 在这里编写验证逻辑,返回true或false
      // 示例:验证输入值是否为数字
      return !isNaN(value);
    }, "请输入有效的数字");

    $(document).ready(function() {
      // 表单验证
      $("#myForm").validate({
        rules: {
          myInput: {
            required: true,
            customValidation: true // 使用自定义验证规则
          }
        },
        messages: {
          myInput: {
            required: "请输入值"
          }
        }
      });
    });
  </script>
</head>
<body>
  <form id="myForm">
    <input type="text" name="myInput" id="myInput" placeholder="请输入值">
    <button type="button" id="myButton">验证</button>
  </form>
</body>
</html>

在上面的示例中,我们通过$.validator.addMethod方法添加了一个名为customValidation的自定义验证规则。在rules中,我们将myInput元素的验证规则设置为required: truecustomValidation: true,分别表示必填和自定义验证规则。在messages中,我们定义了验证失败时的错误提示信息。

通过以上代码,无论按钮位于表单内部还是外部,都可以正确进行验证。当点击按钮时,会触发表单验证,并根据自定义验证规则进行验证。

腾讯云相关产品和产品介绍链接地址:

  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版(CDB):https://cloud.tencent.com/product/cdb
  • 云原生容器服务(TKE):https://cloud.tencent.com/product/tke
  • 人工智能机器学习平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动推送服务(信鸽):https://cloud.tencent.com/product/tpns
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯区块链服务(TBaaS):https://cloud.tencent.com/product/tbaas
  • 腾讯云游戏引擎(GSE):https://cloud.tencent.com/product/gse
  • 腾讯云直播(CSS):https://cloud.tencent.com/product/css
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • jQuery Mobile中jQuery.mobile.changePage方法使用详解

    jQuery.mobile.changePage方法用的还是很多的。作为一个老手,有必要对jQuery mobile中实用方法做一些总结。系列文章请看jQuery Mobile专栏。jquery.mobile.changepage是过时的jQuery Mobile 1.4.0及将被删除在1.5.0。使用pagecontainer部件的change()法代替。 注意该方法是在内部使用的页面加载和转换作为一个结果,点击一个链接或提交表单时。跳转外部页面全部没有效果,必须是内部的DIV页面才有效果。 jQuery.mobile.changePage( to [, options ] )参数解释说明: to:字符串类型或Object类型,将要跳转到的目的页面。 options:可选参数,Object类型。其对象内的属性解释如下: allowSamePageTransition:布尔类型,默认为false。默认情况下,changepage()忽略请求改变当前的活动页面。设置为true,允许请求执行。注意的一些页面转换到另一个页面(changepage请求的页和页是不同的),他们可能不会如预期的动画。 changeHash:布尔类型,默认为true。设置为true时地址栏中的Hash更新会创建一个新的浏览器历史记录的影响。设置为false,传入的页面在浏览器历史替换当前页面,用户导航无法通过浏览器的“后退”按钮回到上一个页面。 data:Object类型或字符串类型,默认为 undefined。跳转页面发送ajax请求的参数。 dataUrl:字符串类型,默认为 undefined。完成页面转换时要更新浏览器地址的URL地址。如不特别指定,则使用页面page元素的data-url属性值。 pageContainer:(jQuery选择器,默认:$.mobile.pageContainer)指定应该包含页面的容器。 reloadPage:布尔类型,默认false。强制刷新页面, 即使当页面容器中的dom元素已经准备好时,也强制刷新。只在changePage()的to参数是一个可用地址的时候。 reverse:布尔类型,默认false。设定页面转场动画的方向,设置为true时将导致反方向的转场。 role:字符串类型,默认为 undefined。显示页面的时候使用data-role值。默认情况下此参数为认:undefined,取决于元素的@data-role属性。 showLoadMsg:布尔类型,默认true。设定加载外部页面时是否显示loading信息。 transition:字符串类型,默认为 $.mobile.defaultPageTransition。过渡到其他页面时呈现。 type:字符串类型,默认为get。只有到to的参数被指定时使用。 使用例子如下:添加changehash:假以避免iframe引起的问题。

    02
    领券