【问题标题】:Calling validation through ajax function通过ajax函数调用验证
【发布时间】:2012-05-18 22:45:48
【问题描述】:

我有两个想要一起工作的 javascript。我有一个通过 ajax 提交的表单和一个表单验证脚本,如果验证失败,我想共同防止 ajax 表单提交。

这里是ajax表单提交脚本:

<script type="text/javascript">
$(document).ready(function(){$(".sendName").click(function(){
var jsuser=$("#jsuser").val();
var jemail=$("#jemail").val();
var jusid=$("#jusid").val();
$.post("recomend.php",{jsuser:jsuser,jusid:jusid,jemail:jemail},function(data){$("#loadName")
.html(data)
.effect('bounce', { times: 5, distance: 30 }, 300);
  });
 });
});
$('#start').click(function() {
  $('#effect').toggle('fast', function() {
   });
});
</script>

这段代码完美运行,表单提交。

我的验证代码也部分工作。如果输入的信息不正确,字段旁边会显示错误消息,但仍然可以提交表单。

在普通表单上,验证码是这样调用的:

<form method="post" action="formprocess.php" name="form1" id="form1" onsubmit="return validate(this)">

所以,我需要知道如何做相当于:

onsubmit="return validate(this)"

在ajax提交代码中,有错误不提交表单。

【问题讨论】:

  • 出于好奇,您为什么不对帮助您解决问题的人提供的有用答案给予支持?
  • 我通常会这样做。我也总是接受最能解决我的问题的答案。当我早些时候试图解决这个问题时,我有点着急,所以只是标记了接受的答案并离开了。但是,我总是检查我的问题是否有新帖子和 cmets,并接受答案并标记那些甚至有点帮助的答案。关于这个问题的两个答案都帮助我弄清楚了一些事情,所以他们都被投了赞成票。

标签: javascript ajax forms validation


【解决方案1】:

你为什么不做以下事情?

<script type="text/javascript">

$(document).ready(function(){$(".sendName").click(function(){

var jsuser=$("#jsuser").val();
var jemail=$("#jemail").val();
var jusid=$("#jusid").val();
if(validate(jsuser, jemail, jusid)){
$.post("recomend.php",{jsuser:jsuser,jusid:jusid,jemail:jemail},function(data){$("#loadName")
.html(data)
.effect('bounce', { times: 5, distance: 30 }, 300);
  });
 });
});
$('#start').click(function() {
  $('#effect').toggle('fast', function() {
   });
});
}
</script>

validate 在哪里进行验证

【讨论】:

  • 我最终做了与此非常相似的事情。
【解决方案2】:
$(".sendName").click(function(){
  if (!validate(this.form)) return;
  // rest of your function, including AJAX call
});

.form 属性适用于所有表单元素(HTMLSelectElement、HTMLOptionElement、HTMLInputElement、HTMLTextAreaElement、HTMLButtonElement、HTMLLabelElement、HTMLFieldSetElement、HTMLLegendElement、HTMLObjectElement 和 HTMLIsIndexElement)。

【讨论】:

  • writing JavaScript,例如if (…){ … }else{ … }
  • 我熟悉 if 语句。只是不能 100% 确定代码中的“返回”。 if (!validate(this.form)){ return;} else { } 根据您发布的代码,我会做吗?
  • 在您的代码中,“this”引用的是什么?它是否引用了“.sendName”类的表单?这实际上是提交按钮的类,用于通过 ajax 发送表单。如果我要在对表单的引用中进行硬编码,我会在您的代码中使用什么来代替“this.form”?
  • this 是注册click 处理程序的元素。正如我在问题中所指出的,表单元素(如提交按钮)具有引用表单本身的 .form 属性。根据您的原始验证代码,我假设您的 validate() 方法将要验证的表单作为其参数。
  • 感谢您提供有关 .form 属性的信息 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 2014-02-23
  • 1970-01-01
  • 2013-09-09
  • 1970-01-01
  • 2013-10-11
相关资源
最近更新 更多