Jquery 验证远程失败。无法提交表格

标签 jquery jquery-validate

我有一个曾经有效的表单验证,包括远程检查用户名是否可用。我们在 script.js 文件中添加了许多其他 javascript,但最近的某个时候,该文件的远程部分出现了问题。验证仅检查一个表单字段,即 new_name 字段。它是必需的(有效)并且必须可用(无效)。

这是 jQuery:

        $('#nickname_form').validate({
        rules: {
            new_name: {
                required: true,
                remote: {
                    url: '/api/screenname_unique/',
                    type: 'post'
                }
            }
        },
        messages: {
            new_name: {
                required: 'Please choose a Forum Username.',
                remote: 'That Username is already taken or contains invalid characters.'
            }
        }
    });

正如我所说,上面的内容过去一直有效,没有任何变化。我检查了 script.js 文件的其余部分,没有显示任何错误。此外,在网站中,我们没有在任何地方看到 JS 错误。如果我删除上述代码的远程部分,所需的检查将起作用,并且当字段中有值时表单将提交。

远程调用到位后,表单将不会提交,并且无论远程调用的 ajax 响应是 true 还是 false,都不会显示 jQuery 验证错误消息。这是远程调用的页面。就给定值给出的响应而言,它工作得很好:

<?php
header('Content-type: application/json');

//get the post value
$screen_name = $_POST['new_name'];

//get their member_id
$member_id = $this->EE->session->userdata['member_id'];

//return false if no screen_name provided
if((!$screen_name) || (!$member_id)) {
    echo json_encode(false);
    exit;
} else { //there is a screen_name

    //Regex Check for valid chars
    $valid = !preg_match('/[^a-z0-9_ -]/i',trim($screen_name));

    if (!$valid) {
        echo json_encode(false);
        exit;
    }

    //SQL
    $results = $this->EE->db->query("SELECT member_id FROM exp_members WHERE screen_name = '$screen_name' and member_id <> '$member_id' limit 1");

    if ($results->num_rows() > 0) {
        echo json_encode(false);
    } else {
        echo json_encode(true);
    }

}

?>

我不太确定从这里该去哪里。有想法吗?

最佳答案

我使用的是 JQ 1.5.1,刚刚更新到 1.6.3,现在表单工作正常。我想也许远程和 1.5.1 有问题?谢谢大家。

关于Jquery 验证远程失败。无法提交表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7329125/

相关文章:

javascript - 如何删除两个标签之间的文本?

javascript - 当我将监听器放入 Wordpress 页面时,为什么它不起作用?

javascript - jQuery 画廊正在重复第一张图片进行一次旋转

javascript - 忽略元素 html 的验证 - Jquery 验证

jQuery 验证文本区域最大长度错误

jquery - JsTree 与 jquery.validate 冲突

javascript - 单击时使用 jQuery 更改图像不起作用

javascript - JQuery 验证插件 submitHandler 对我不起作用

jquery - 鼠标悬停时显示 qTip

javascript - (角色扮演游戏?)HTML5 和 Javascript 中的对话系统 - 这可能吗?