JQuery.Validate() - 远程规则

时间:2012-10-08 23:54:08

标签: php javascript jquery validation web

我正在为学校项目开发一个网站。虽然我主要使用PHP,但我还是应该做一些客户端验证。 在Google中花了很短的时间才找到了Validate JQuery插件。 到目前为止,这就是我所拥有的:

<form id="regform" class="well" method="post" action="Registering.php">
        <label>Name: <input type="text" placeholder="Type your name" name="Name" class="required" /></label>
        <label>Surname: <input type="text" placeholder="Type your surname" name="Surname" class="required" /></label>
        <label>Username: <input type="text" placeholder="Type your username" name="Username" class="required" /></label>
        <label>Password: <input type="password" placeholder="Type your password" name="Password" class="required" /></label>
        <label>Repeat Password: <input type="password" placeholder="Confirm Password" name="Password-confirm" class="required" /></label>
        <label>E-Mail: <input type="Email" placeholder="Type your Email" name="Email" class="required email" /></label>
        <label>Birthday: <input type="Date" name="Birthday" /></label>
        <label>Gender:</label>
        <label>Male <input type="radio" name="Gender" value="0" checked> Female <input type="radio" name="Gender" value="1"></label>
        <label>Photo: <input type="url" placeholder="Paste an image link" name="PhotoLink" class="url" /></label>
        <label><input type="submit" class="btn btn-primary" name="Submit" value="Register in YouTune" /></label>
 </form>

这是表格,几乎是标准的注册表格。这里没有什么可以补充的。 然后我有这个小Javascript:

$(document).ready(function(){
        $("#regform").validate({
            rules: {
                Username: {
                    remote: { url: "/check_username.php", async: false }
                }
            },
            messages: {
                Username: { remote: "Username already on use. Pick a different one." }
            }
        });
});

最新的JQuery库的两个脚本和Validate Plugin的1.10版本都添加在文档的头部。

好吧,为了简短起见,验证工作运行顺利,但远程规则不起作用。就好像它根本不存在,没有错误消息我是否使用已经使用过的用户名提交。 Javascript调用的php文件具有以下脚本:

<?php error_reporting(E_ALL);
     require_once("../Clases/User.php");
     header('Content-type: application/json');
     $vUser = new User();
     $vResult = $vUser->GetUserByUsername($_REQUEST["Username"]);
     if ($vResult) {
    echo false;
     } else { echo true; }

&GT;

GetUserByUsername方法转到DataBase并使用给定参数搜索User,如果匹配则返回true,否则返回false。 我已经在没有Javascript远程调用的情况下对其进行了测试,并且工作正常

那么,有谁知道为什么会这样?

先感谢您抽出时间阅读并试图帮助我解决这个小问题。

编辑:解决了。我只需要修复远程调用的源代码。不敢相信我错过了。无论如何,非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我不太确定,但看看它是否有效;从您的网址中删除“/”。使用“check_username.php”代替“/check_username.php”或绝对网址