0

一緒に作業したい 2 つの 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 送信コードで、エラーがある場合はフォームを送信しません。

4

2 に答える 2

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検証はどこで行われますか

于 2012-05-18T22:51:38.427 に答える
1
$(".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) で使用できます。

于 2012-05-18T22:50:51.730 に答える