-2

これが私のコードです。私がやろうとしているのは、JavaScriptでフォームをチェックし、AJAXを介してPHPスクリプトに送信し、ユーザーをログインさせることです.

<!DOCTYPE html>
<html>
    <head>
        <title>RPEMS: Login</title>
        <link rel="stylesheet" type="text/css" href="../main.css"></link>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
        <script type='text/javacript'>

$(function()
{
    $('.error').hide();
$('.button').click(function()
{
    $('.error').hide();
    var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    var email = $('input#email').val();
    var pass = $('input#pass').val();
    var err = false;

    if (!email)
    {
        $('label#emErr').show();
        $('input#email').focus();
        err = true;
    }

    if (!filter.test(email))
    {
        $('label#emValErr').show();
        $('input#email').focus();
        err = true;
    }

    if (!pass)
    {
        $('label#passErr').show();
        $('input#pass').focus();
        err = true;
    }

    if (err) return false;

    var dataString = 'email=' + email + '&pass=' + pass;
    $.ajax({
    type: "POST",
    url: "log.php",
    data: dataString,
    success: function(result)
    {
        if (result.success == true) window.location('../');
        else $('p#phpErr).html(result.message).show();
    }});
}
});

    </script>
</head>
<body>
    <div id="header">
        <img id="logo" src="../img/logo.png"></img>
            <ul id="navBar">
                <li class="navLink">
                    <a href="/">Home</a>
                </li>
                <li class="navLink">
                    <a href="/about">About/Contact Us</a>
                </li>
                <li class="navLink">
                    <a href="/calendar">Calendar</a>
                </li>
                <li class="navLink">
                    <a href="/login">Login</a>
                </li>
            </ul>
    </div>

    <form method='post' action=''>
        <fieldset>
            <label for='email'>Email: </label>
            <input name='email' id='email' type='text'></input>
            <br class='error'></br>
            <label for='email' class='error' id='emErr'>This field is required</label>
            <label for='email' class='error' id='emValErr'>Invalid email adress</label>
            <br class='error'></br>

            <label for='pass'>Password: </label>
            <input name='pass' id='pass' type='password'></input>
            <br></br>
            <label for='pass' class='error' id='passErr'>This field is required</label>
            <br class='error'></br>
            <p class='error' id='phpErr'></p>

            <input type='submit' name='submit' id='submit_btn' value='Submit'></input>
        </fieldset>
    </form>

悲しいことに、ページを読み込んでも、エラーは隠されません。

4

2 に答える 2

6

コードに aUncaught SyntaxError: Unexpected token )があります。ブラウザでコンソールを常にチェックしていることを確認してください。jsfiddleを参照してください

これが作業中のjsfiddleです。行に一重引用符がなく、document.ready の前にelse $('p#phpErr').html(result.message).show();閉じています。);

これは、このようなエラーを解決するのに役立つため、常にコンソールを確認してください... コンソールの使用方法がわからない場合。 これをチェックしてください

于 2012-08-22T20:06:19.033 に答える
-1

あなたのスクリプトには違法MIME-typeがあります(欠落していますs

 <script type='text/javacript'>

そのため、ブラウザはそれを実行しようとさえしません

修正に変更type="text/javascript"

また、スクリプトの最後の行にいくつかの構文エラーがあります。これを修正してください。

            else $('p#phpErr').html(result.message).show(); //missing quote here
        }});
    }); //missing ) here
});
于 2012-08-22T20:22:54.480 に答える