javascript - 通过 AJAX 使用 jquery 工具包 (jkit) 验证发布表单

标签 javascript php jquery ajax

我不确定为什么我的 ajax 调用不起作用。我有一个启用了 jkit 验证的联系表单,我想在它通过所有验证规则后通过 AJAX 发送它。然后我想把结果放到html div而不是去php。请帮忙

HTML

<form method="post" action="servercode/contact.php" data-jkit="[form:validateonly=yes; success=Your success message]">
    <div class="contact-one">
        <p>
            <label for="miniusername">Username:</label><br />
            <input name="miniusername" id="miniusername" data-jkit="[validate:required=true;min=3;max=10;error=Please enter your username (3-10  characters)]">
        </p>
    </div>  
    <div class="contact-two">  
        <p>
            <label for="miniemail">E-mail:</label><br />
            <input name="miniemail" id="miniemail" data-jkit="[validate:required=true;strength=50;error=Please write your email]">
        </p>
    </div>  
    <div class="contact-three">  
        <p>
            <label>Message:</label><br />
            <textarea id="message" name="message"></textarea><br/><br/> 
            <input class="button-submit" id="send" name="send" type="submit" value="SUBMIT" />
        </p>
    </div>            
    <div id="content"></div>
</form>

AJAX 调用

$("#send").click(function(){
    $.ajax({
        type: 'POST',
        url: 'servercode/contact.php',
        success: function(data){
            if(data != null) $("#content").html(data)
        }
    });
});

PHP

<?php
if (isset($_POST['send'])){
    $to = 'abc@aol.com'; 
    $subject = 'Contact form website';

    $message = 'Name: ' . $_POST['miniusername'] . "\r\n\r\n"; 
    $message .= 'Email: ' . $_POST['miniemail'] . "\r\n\r\n";
    $message .= 'Message: ' . $_POST['message'];
    $success = mail($to, $subject, $message);
}?>
<?php if (isset($success) && $success) { ?>
    <h1>Thank You</h1>
    <p>Your message has been sent.</p>
<?php } else{ ?>
    <h1>Oops!</h1>
    <p>Sorry, there was a problem sending your message.</p>
<?php } ?>

最佳答案

您没有通过 ajax 调用发送任何数据...尝试这样做:给您的表单一个ID(例如,form_id)

$("#form_id").submit(function(event)
{
 event.preventDefault();
 var data = $(this).serialize();
 var url = $(this).attr("action");
 $.ajax({
    type: 'POST',
    data: data,
    url: url,
    success: function(data){
             if(data != null) $("#content").html(data)
     },
    error: function(xhr,status,msg){
       console.log(xhr.responseText);
    }
 });
});

关于javascript - 通过 AJAX 使用 jquery 工具包 (jkit) 验证发布表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31008100/

相关文章:

php - PHP 中的产品过滤器从 MySQL 表中过滤

php - SQL 求和并从第二个查询中添加两列

php - 如何在不使 Apache 崩溃的情况下清除 APC 缓存?

php - .load 不起作用,我想我的概念错了?

jquery - 使用表单编辑文本区域

javascript - 将 JQuery 用于 CSS 与样式表

javascript - 显示 json 文件的前 20 项

javascript - 检查集合中是否有任何脏的 Backbone 模型数据

javascript - Momentjs 获取当前 GMT unix 时间

javascript - 如何在创建 SVG 后插入一些元素?