簡體   English   中英

“提交”表格並直接指向Javascript生成的URL

[英]“Submit” Form and Direct to Javascript Generated URL

我有一個登錄表單,完成后會將用戶發送到帶有JavaScript生成的URL的頁面(允許我使用$ _GET將JavaScript變量傳遞給我的PHP腳本)。 但是,為此,登錄按鈕當前為'type =“ button”'。 一切正常后,這意味着用戶無法通過按Enter鍵登錄; 他們實際上必須單擊“登錄”按鈕。 有沒有一種方法可以“提交”表單,同時仍使其指向JavaScript生成的URL?

這似乎是一個非常基本的概念,它告訴我可能是從錯誤的方法入手。 任何指導表示贊賞。

HTML:

<form name="login">
    Username: <input type="text" name="user_id"/>
    Password: <input type="password" name="pswrd"/>
    <input type="button" onclick="check(this.form)" value="Login"/>
</form>

JavaScript的:

function check(form) {
    var userCredentials = [["jsmith", "smithpassword", "John Smith"], ["jdoe", "doepassword", "Jane Doe"]];
    var credCheck = 0;
    for (var i = 0; i < userCredentials.length; i++) {
        if (userCredentials[i][0] == form.user_id.value) {
            credCheck += 1;
            var displayName = userCredentials[i][2];
            if (userCredentials[i][1] == form.pswrd.value) {
                window.open("home.php?display_name=" + displayName, "_self");
            } else {
                alert('The username and password do not match.');
                return false;
            }
        }
    }
    if (credCheck == 0) {
        alert('The username entered is not valid.');
        return false;
    } else {
        return true;
    }
}

而不是通過javascript打開php頁面,您需要動態更改表單action以指向您生成的url。

HTML:

<form name="login">
    Username: <input type="text" name="user_id"/>
    Password: <input type="password" name="pswrd"/>
    <input type="submit" onclick="check(this.form)" value="Login"/>
</form>

JavaScript :(第9行和第10行已更改)

function check(form) {
    var userCredentials = [["jsmith", "smithpassword", "John Smith"], ["jdoe", "doepassword", "Jane Doe"]];
    var credCheck = 0;
    for (var i = 0; i < userCredentials.length; i++) {
        if (userCredentials[i][0] == form.user_id.value) {
            credCheck += 1;
            var displayName = userCredentials[i][2];
            if (userCredentials[i][1] == form.pswrd.value) {
                form.action = "home.php?display_name=" + displayName;
                return true;
            } else {
                alert('The username and password do not match.');
                return false;
            }
        }
    }
    if (credCheck == 0) {
        alert('The username entered is not valid.');
        return false;
    } else {
        return true;
    }
}

您可以嘗試:

<form name="login" onsubmit="check(this)">
    Username: <input type="text" name="user_id"/>
    Password: <input type="password" name="pswrd"/>
    <input type="submit" value="Login"/>
</form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM