首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何有条件地执行jquery验证?

如何有条件地执行jquery验证?
EN

Stack Overflow用户
提问于 2010-05-24 11:46:58
回答 5查看 2.2K关注 0票数 4

我正在使用jquery验证插件验证表单......

代码语言:javascript
复制
 rules: {
    Name: "required",
    MobileNo: {
           required: true,
           minlength: 10, remote: '<%=Url.Action("getClientMobNo", "Clients") %>'
               },
    Address: "required"
            },
    messages: {
        Name: "please provide a client name",
        MobileNo: {
        required: "Please provide a mobile phone no",
        rangelength: jQuery.format("Enter at least {0} characters"),
        remote: jQuery.format("This MobileNo is already in use")
      },
      Address: "please provide client address"
   },

这在添加表单验证上工作得很好,但我使用相同的表单进行编辑,在这里他们可以使用相同的手机号,但我的插件验证了mobileno说已经有了一个手机号。而是如何基于条件执行远程属性,

代码语言:javascript
复制
   MobileNo: {
           required: true,
           minlength: 10,
          if($("#HfId").val() == ""){ 
            remote: '<%=Url.Action("getClientMobNo", "Clients") %>'
             }
          },

这是有效的jquery条件验证语句....如何根据条件跳过远程属性...

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-05-28 14:23:27

好吧,我会做这样的事情

例如,我的php页面是member.php。

要添加,请发送类似以下member.php?action=add的URL

代码语言:javascript
复制
<? 
$action = $_GET['action'];
?>
<script>
        $("#frmmember").validate({
      rules: { 
        name: { 
                <? if($action=='add') { ?>
                      required: true, 
               <? } ?>
                      rangelength: [4, 50] },
        email: { required: true, rangelength: [5, 50], email: true },
        phone: { required: true, number:true, rangelength: [7, 10] }
        },
      onkeyup: false
    });
</script>

在这种情况下,只有当url变量"action"中有“required=true”时,验证规则才会应用。

票数 0
EN

Stack Overflow用户

发布于 2010-05-28 13:45:20

您将需要一些服务器端。处理编辑或应用不同的Url.Action。

执行不同的操作来管理它正在编辑细节,而不是以相同的方式应用它们,因此mobileno可以是相同的。

祝好运。

是因为服务器端验证而抛回的,还是甚至在到达之前就抛回了?

票数 0
EN

Stack Overflow用户

发布于 2010-05-29 01:47:03

使用jquery扩展方法怎么样?如果是新记录,则添加remote属性;如果是并退出记录,则添加use和empty对象。

代码语言:javascript
复制
 rules: {
        Name: "required",
        MobileNo: $.extend(
          {
            required: true,
            minlength: 10
          },
          ($("#HfId").val() == "")?{remote: '<%=Url.Action("getClientMobNo", "Clients") %>'}:{}
        ),
        Address: "required",
        messages: {
            Name: "please provide a client name",
            MobileNo: {
              required: "Please provide a mobile phone no",
              rangelength: "Enter at least {0} characters",
              remote: "This MobileNo is already in use"
            },
          Address: "please provide client address"
       }
     }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2894635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档