Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 远程jQuery验证不需要';Don’别开玩笑_Javascript_Jquery_Jquery Validate - Fatal编程技术网

Javascript 远程jQuery验证不需要';Don’别开玩笑

Javascript 远程jQuery验证不需要';Don’别开玩笑,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我不想在提交表单后刷新页面,所以我使用了form.preventDefault();不要这样做。我想验证表单,然后(如果它有效的话)调用后端函数(通过ajax)向数据库插入新行 第一次提交时一切正常,但第二次验证时,它不会触发远程验证,因此当我尝试添加与上一次相同的下一个SN时,我能够做到这一点。我不明白为什么远程验证没有启动,而其他验证(如最小字符数/最大字符数)则在没有任何问题的情况下启动 代码: 正如我所说的,当您第一次运行它(第一次提交)时,它是有效的。但是,如果您想再次执行此操作(当然

我不想在提交表单后刷新页面,所以我使用了form.preventDefault();不要这样做。我想验证表单,然后(如果它有效的话)调用后端函数(通过ajax)向数据库插入新行

第一次提交时一切正常,但第二次验证时,它不会触发远程验证,因此当我尝试添加与上一次相同的下一个SN时,我能够做到这一点。我不明白为什么远程验证没有启动,而其他验证(如最小字符数/最大字符数)则在没有任何问题的情况下启动

代码:


正如我所说的,当您第一次运行它(第一次提交)时,它是有效的。但是,如果您想再次执行此操作(当然不需要重新加载页面),则无需进行远程验证。

我做到了。如果存在与上一个相同的值,jQuery验证器不会启动远程验证。在页面刷新时或通过重置功能重置。解决方案是使用:

var validator = $("#form").validate({ ... });
在成功验证调用后:

validator.resetForm();
我确实用过这个

jQuery.validator.addMethod("idTurnoEstaEnUso", function (value, element)
{        
  var url = '/nonrest/Turnos/IdTurnoValida';
  var objetoIdTurno = { inputTextIdTurno: value };
  var respuesta = null;

  $.ajax({     
    async: false,
    url: url,
    type: 'post',
    contentType: 'application/json',
    data: ko.toJSON(objetoIdTurno),
    success: function (data) {
      if (data == true) {
        respuesta = true;
      } else {
        respuesta = false;
      }
    },
    error: function () {
      respuesta = false;
    }
  });

  if (respuesta == false) {
    return this.optional(element) || respuesta;
  }

  if (respuesta == true) {
    return this.optional(element) || respuesta;
  }

}, "El código está ya en uso.");

是否动态添加第二个序列号字段?然后您必须使用Nope,SN字段是简单的HMTL输入,自第一页加载以来就存在。is
$(“#表单”)。验证({
调用一次或每次提交时调用?如何找到它?如果有帮助,所有验证块都是该代码。该插件与代码中显示的插件完全不同。标记时请更加小心。在
submitHandler
回调中不需要任何
.preventDefault()
和AFAIK,
表单.preventDefault()
是无效代码,因为
表单
不是事件。只要使用
提交程序
,默认提交操作(和页面重新加载)总是会被阻止。
jQuery.validator.addMethod("idTurnoEstaEnUso", function (value, element)
{        
  var url = '/nonrest/Turnos/IdTurnoValida';
  var objetoIdTurno = { inputTextIdTurno: value };
  var respuesta = null;

  $.ajax({     
    async: false,
    url: url,
    type: 'post',
    contentType: 'application/json',
    data: ko.toJSON(objetoIdTurno),
    success: function (data) {
      if (data == true) {
        respuesta = true;
      } else {
        respuesta = false;
      }
    },
    error: function () {
      respuesta = false;
    }
  });

  if (respuesta == false) {
    return this.optional(element) || respuesta;
  }

  if (respuesta == true) {
    return this.optional(element) || respuesta;
  }

}, "El código está ya en uso.");