Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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
Php 使用preventDefault时对表单操作的验证_Php_Asp.net_Ajax_Jquery - Fatal编程技术网

Php 使用preventDefault时对表单操作的验证

Php 使用preventDefault时对表单操作的验证,php,asp.net,ajax,jquery,Php,Asp.net,Ajax,Jquery,我正在对服务器端函数进行ajax调用以发送电子邮件。它很好用。我的问题是在发送电子邮件之前,我需要验证服务器端代码驻留在captchavalization.php中的验证码。如果我在表单操作上调用“captchavalization.php”,它应该可以正常工作,但在这里,因为我正在进行ajax调用,所以我需要使用e.preventDefault();。所以这种形式的行动是不起作用的 我怎样才能让它工作 <html xmlns="http://www.w3.org/1999/xhtml"&

我正在对服务器端函数进行ajax调用以发送电子邮件。它很好用。我的问题是在发送电子邮件之前,我需要验证服务器端代码驻留在captchavalization.php中的验证码。如果我在表单操作上调用“captchavalization.php”,它应该可以正常工作,但在这里,因为我正在进行ajax调用,所以我需要使用e.preventDefault();。所以这种形式的行动是不起作用的

我怎样才能让它工作

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
 <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#divLoading').hide();
            $('#appointment').submit(function (e) {
                e.preventDefault();



                var serviceURL = 'WebService.asmx/SendMail';
                var Name = $("#fname").val();
                var Email = $("#email").val();
                var Telephone = $("#phone").val();
                var Comment = $("#comment").val();

                if ($("#fname").val().length == 0) {
                    alert("Please Enter Name");
                    $("#fname").focus();
                    return false;
                }

                if ($("#email").val().length == 0) {
                    alert("Please Enter Your Email Address.");
                    $("#email").focus();
                    return false;
                }

                if (Email.indexOf("@") == -1) {
                    alert("Please Enter Your Email Address.");
                    $("#email").focus();
                    return false;
                }
                if (Email.indexOf(".") == -1) {
                    alert("Please Enter Your Email Address.");
                    $("#email").focus();
                    return false;
                }

                $('#divLoading').show();

                $.ajax({
                    type: "POST",
                    url: serviceURL,
                    data: '{"name":"' + Name + '","address":"' + Email + '","telephone":"' + Telephone + '","comment":"' + Comment + '"}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: successFunc,
                    error: errorFunc
                });

                function successFunc(data, status) {

                    //  alert("Mail Sent!");
                    $('#divLoading').hide();
                    window.location = "contat-submit.php";

                }

                function errorFunc() {
                    // alert('error');
                }

            });

        });

</script>
</head>
<body>
   <form name="appointment" id="appointment" method="post" action="CaptchaValidation.php">
    <div>
    </div><div id="leftcolumn4"><div class="h2">Contact Form</div>
      <form name="appointment" id="Form1" method="post" action="send_contact.php">
Full Name:
<br />
<label>
  <input name="fname" type="text" class="form-input" id="fname" size="30" />
</label> 
<br /><br />

Email Address:<br />
<label>
  <input name="email" type="text" class="form-input" id="email" size="30" />
</label><br /><br />
Telephone:
<br />
<label>
  <input name="phone" type="text" class="form-input" id="phone" size="30" />
</label> 
<br /><br />
Your Comment:<br />
<label>
<textarea name="comment" cols="28" rows="4" class="form-input-box" id="comment"></textarea><br />

      <br />
&nbsp;</label><input name="submit" type="submit" class="form-input-submit" value="Submit" id="btnMail"/>
    </div>
    </form>
</body>
</html>


$(文档).ready(函数(){
$('#divload').hide();
$(“#约会”)。提交(功能(e){
e、 预防默认值();
var serviceURL='WebService.asmx/SendMail';
变量名称=$(“#fname”).val();
var Email=$(“#Email”).val();
var电话=$(“#电话”).val();
var Comment=$(“#Comment”).val();
if($(“#fname”).val().length==0){
警报(“请输入名称”);
$(“#fname”).focus();
返回false;
}
if($(“#email”).val().length==0){
提醒(“请输入您的电子邮件地址”);
$(“#电子邮件”).focus();
返回false;
}
如果(Email.indexOf(“@”)=-1){
提醒(“请输入您的电子邮件地址”);
$(“#电子邮件”).focus();
返回false;
}
如果(Email.indexOf(“.”)=-1){
提醒(“请输入您的电子邮件地址”);
$(“#电子邮件”).focus();
返回false;
}
$('#divload').show();
$.ajax({
类型:“POST”,
url:serviceURL,
数据:“{”姓名“+”姓名“,”地址“+”电子邮件“,”电话“+”电话“,”评论“+”评论“}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:successFunc,
错误:errorFunc
});
函数successFunc(数据、状态){
//警报(“已发送邮件!”);
$('#divload').hide();
window.location=“contat submit.php”;
}
函数errorFunc(){
//警报(“错误”);
}
});
});
联系方式
全名:



电子邮件地址:


电话:


您的评论:


按照以下步骤操作:

  • 将“提交”按钮更改为简单按钮,以便在单击该按钮时表单不会提交
  • 单击该按钮调用一个函数,该函数将调用e.preventDefault()

    函数callSubmit(){ //做ajax调用 }

  • 您正在e.preventDefault()函数中进行ajax调用。因此,在AJAX响应中,您必须检查AJAX响应是否正确,然后使用以下命令执行表单提交:

    $(“#约会”)。提交()

  • 现在只需删除e.preventDefault();来自表单的函数。提交您编写的函数。这将允许AJAX提交和发送电子邮件


  • 为什么不使用
    $.ajax({type:“POST”,url:'captchavalization.php',data:…
    这与
    asp.net
    有什么关系?请先将帖子指向验证码验证,然后在验证成功后调用表单提交函数,否则显示错误消息\