0

さて、私は割り当ての一部を間違って読んだという点で少し問題があり、実際にはこのログインに有効な電子メールアドレス形式を持たせ、それを 2 番目の URL (myaccount.html) に転送する必要があります。いくつか試してみましたが、ADMIN ページと MYACCOUNT ページの両方にログインできるようになりましたが、無効な電子メールを入力してもログインします (jdelor1965@yahoo.m など)。何か案は??ありがとう...

// Chapters 3 & 4 - login.js (updated during week 3)

// Function called when the form is submitted.
// Function validates the form data and returns a pop-up if conditions are not met.
function validateForm() {
'use strict';

// Get references to the form elements:
var email = document.getElementById('email').value;
var password = document.getElementById('password').value;
var pattern = '/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/';

// Validate!
if (email == 'admin@titanmusicstore.com' && password == 'LogMeIn') 
{
    window.location = "admin.html";
} 

else if (pattern == '/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/' && pattern == '/^\w+@[a-              zA-Z_]+?\.[a-zA-Z]{2,3}$/') 
{
    window.location = "myaccount.html";
} 

else 
{
    alert('Invalid or incorrect Email or Password!');
}
return false;

}
// End of validateForm() function.

JSFiddle: http://jsfiddle.net/FL2c4/

** 問題は、使用されている JavaScript と HTML の「フォーム アクション」の間の競合ではないかと考えています。電子メールとパスワードの組み合わせのいずれかを使用すると、「フォーム アクション」フィールドにリストされたページに移動しますが、ログインがどこにも行かないその情報を削除しますか??

明確にするために、これは学校のプロジェクトであり、「現実の世界」で使用するためのものではありません! ここですでにいくつかの本当に良い助けを受けているので、助けてくれた人たちにもう一度感謝します. 今週の課題の一部は、ログイン検証スクリプトを変更して、2 つの UID を別の場所に送信することです。私はすべての章を読み、ビデオを見て、オンラインで際限なく調査しましたが、これを機能させる方法がわかりません。これは私が持っているものであり、提案やアイデアは大歓迎です (HTML をそのためのページがいくつかあります。つまり、index、login、admin、および myaccount です)。

JavaScript:

// Script Week 2 - login.js

// Function called when the form is submitted.
// Function validates the form data and returns a pop-up if conditions are not met.
function validateForm() {
'use strict';

// Get references to the form elements:
var email = document.getElementById('email').value;
var password = document.getElementById('password').value;
var url = window.location.toLowerCase('login.html');

// Validate!
if (email == 'admin@titanmusicstore.com' && password == 'LogMeIn')
{
window.location = "admin.html";
}

else if (email == 'jdelor1965@yahoo.com' && password == 'LogMeIn') 
{
window.location = "myaccount.html";
return true;
}

else 
{
    alert('Please fill out form accurately - Incorrect UID or Password!');
    return false;
}

} 
// End of validateForm() function.


// Function called when the window has been loaded.
// Function needs to add an event listener to the form.
function init() {
'use strict';

// Confirm that document.getElementById() can be used:
if (document && document.getElementById) {
    var loginForm = document.getElementById('loginForm');
    loginForm.onsubmit = validateForm;
}

} 
// End of init() function.

// Assign an event listener to the window's load event:
window.onload = init; 
4

2 に答える 2

1

新しいコード

// Script Week 2 - login.js

// Function called when the form is submitted.
// Function validates the form data and returns a pop-up if conditions are not met.
function validateForm() {
    'use strict';

    // Get references to the form elements:
    var email = document.getElementById('email').value;
    var password = document.getElementById('password').value;
    //    var url = window.location.toLowerCase('login.html'); DELETE -- does nothing

    // Validate!
    if (email == 'admin@titanmusicstore.com' && password == 'LogMeIn') {
        window.location = "http://talk.collegeconfidential.com/";
    } else if (email == 'jdelor1965@yahoo.com' && password == 'LogMeIn') {
        window.location = "http://disney.com";
    } else {
        alert('Please fill out form accurately - Incorrect UID or Password!');
    }
    return false;

}
// End of validateForm() function.


// Function called when the window has been loaded.
// Function needs to add an event listener to the form.
function init() {
    'use strict';

    // Confirm that document.getElementById() can be used:
    if (document && document.getElementById) {
        var loginForm = document.getElementById('loginForm');
        loginForm.onsubmit = validateForm;
    }

}
// End of init() function.

// Assign an event listener to the window's load event:
window.onload = init;

falseフォームが勝手に送信されないようにするには、validateForm 関数から毎回 falseを返す必要があります。すべての条件で false になるため、そのステートメントを関数の最後に移動しました。

FIDDLEで動作するように URL を変更しました。

また、自分のハンドラーが機能onLoadするように、フィドルを から に変更しました。No wraponload

于 2013-11-03T21:27:59.973 に答える