jquery - 有条件的远程验证

标签 jquery jquery-validate depends

我有一个表单,正在通过 jQuery Validate 插件进行验证。除了一件事之外,一切都工作正常。

我有一个使用的字段,即远程规则,并且我正在使用 AJAX 来检查是否已存在同名的应用程序记录。仅当用户更改字段中的值时,我才需要执行此验证。

这是我的验证代码:

$('#createapp').validate({
    rules: {
      appname: {
        minlength: 8,
        required: true,
        remote: {
                url: "<?php echo base_url();?>app/application/check_app",
                type:"POST",
                async: false,
                data:  {
                appname: function() {
                return $("#appname").val();
          }
        }  
      }
      },
      apptitle: {
        required: true
      }
    },
    messages: {
        appname: {
      remote: "Application with same name already exists"
      }
     },
    highlight: function(label) {
        $(label).closest('.control-group').addClass('error');
    },
    success: function(label) {
        label
            .text('OK!').addClass('valid')
            .closest('.control-group').addClass('success');
    }
  });

我需要这样做:

仅当用户更改应用程序名称字段中的文本时才执行远程验证。我尝试使用depends但无法使其工作。这基本上是我尝试过的:

remote: {
            depends: function(element){
            return ($('#appname').val() != "<?php echo trim($application[0]->app_name) ?>" );
            }

最佳答案

我终于使用了一个解决方法。如下

  1. 将原始名称作为隐藏参数传递

    <input type="hidden" name="orgappletname" id="orgappletname"
      value="<?php echo $applet[0]->applet_name ?>">
    
  2. 设置 jQuery 与原始名称进行比较,看看模糊是否发生了变化。如果是,则触发 ajax 请求来检查更改后的名称。

    $('#appletname').blur(function(){
     if($(this).val() != $('#orgappname').val()){
        $.ajax({
            url: "<?php echo base_url() . "apl/applet/check_applet" ?>",
            data: "appletname=" + $(this).val(),
            type: "POST",
            success: function (msg) {
            }
        });
      }
      });
    

我不确定这是否是正确的方法,但它对我有用。

关于jquery - 有条件的远程验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10561053/

相关文章:

jquery-validate - 如何在 jquery.validate 验证事件后执行代码?

Jquery 验证 + 全局化 + 应用于所有数字字段,而不仅仅是所需的字段

java - 在ant中运行依赖于jar的目标

python - FastAPI:我也可以在 POST 中使用 Depends() 作为参数吗?

javascript - 使用 Jquery Validator 出现验证错误时如何避免或禁用表单提交

javascript - 根据页面加载时的下拉值显示隐藏/div

jQuery 在选项卡中验证仅适用于首次提交

java - 如何在Docker中初始化数据库后启动flyway

java - Jstree JSON 作为变量 Java

javascript - jquery:在div中加载html页面