Javascript onsubmit = "" не работает - PullRequest
1 голос
/ 04 декабря 2011

Я не уверен, что моя ошибка связана с отправкой формы самой себе через PHP, но она просто не затрагивает мою функцию и все равно отправляет независимо от того, что возвращается. Я не уверен, что мне здесь не хватает. Это моя форма

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <title>Login Page</title>
    <script type="text/javascript" src="js/functions.js"></script>
    <!--Internal for simplicity or until bigger page -->
    <style type="text/css"> 
        #login div{display:inline;color:red;}
        input{margin-right:20px;}
    </style>
</head>
<body>
<form name="login" id="login" action="<?php $_SERVER['PHP_SELF'] ?>" method="POST" onsubmit="return CheckLogin()">
    <?php if($_POST && $win == false): ?>
        <div>Login Unsuccessful. Please Try Again</div><br />
    <?php endif ?>
        <input type="text" size="10" name="username" /><div></div>
            <br />
        <input type="password" size="10" name="password" /><div></div>
            <br />
    <input type="submit" text="Submit" />
</form>
<a href="register.php">Registration Page</a>
</body>
</html>

На самом деле я просто проверяю, пустые ли имя пользователя и пароль, но все равно отправляет их, проходя через эту функцию:

function CheckLogin()
{
    window.alert("made it here");
    var login = document.forms["login"];
    var user = login["username"].value;
    var pass = login["password"].value;

    if(user == null || user == "")
    {
        window.alert("user");
        return false;
    }  

    return false;
}

Я уверен, что это что-то глупое, что я упускаю, поэтому перед отправкой я дважды проверил имена функций и посмотрел, не получаю ли я какие-либо ошибки JavaScript, но ни одна из них не оказалась проблемой. Кто-нибудь видит мою ошибку?

Дело в том, что я не хочу, чтобы PHP запускался или форма отправлялась сама себе, если имя пользователя или пароль пустые или нулевые.

РЕДАКТИРОВАТЬ Добавлена ​​полная страница html минус функциональность PHP. Также отметил, что по какой-то причине моя ссылка на javascript не «ссылается», вместо этого я могу просмотреть ее содержимое прямо в заголовке, как будто оно встроено через элемент inspect или firebug. Это может быть причиной проблемы, но не знаю, почему.

РЕДАКТИРОВАТЬ Добавлен doctype только incase, но по-прежнему не помогает. Он автоматически встраивает мой javascript в мою страницу и помещает его в CDATA, как обычно, вместо того, чтобы фактически связывать его. Это происходит в IE, Firefox и Chrome ...

если кто-то думает, что мой PHP может иметь к этому какое-то отношение, я могу опубликовать его, но я не вижу, как код на стороне сервера может взаимодействовать с кодом на стороне клиента без публикации.

Ответы [ 2 ]

2 голосов
/ 04 декабря 2011

В вашем коде есть небольшие ошибки.Прежде всего, нет атрибута с именем «текст» для ввода, я думаю, что вы пропустили его :) Попробуйте сначала проверить их. Проверьте здесь , чтобы увидеть атрибуты, которые могут принимать входные данные.Во-вторых, этот пример jsfiddle правильно работает в Chrome и FF.Я не могу проверить в IE, так как использую Ubuntu.

После того, как я исправил атрибуты формы, пример в jsfiddle начал работать.Я не уверен, связано ли это с этим, но, видимо, это кажется мне единственным логическим объяснением того, что ваш код не работает.

1 голос
/ 04 декабря 2011

Ваш код работает нормально. Попробуйте запустить его в другом веб-браузере. Возможно, что одно из расширений, которое вы установили в своем браузере, вызывает ошибку JS (наличие словаря Google в Chrome вызывает у меня проблемы).

...