0

每次用户在我的网页上选择登录按钮时,都会执行下面的 JavaScript 代码,该功能基本上确保usernameandpassword字段已接收到文本(然后去除任何前导或尾随空格),然后将浏览器重定向到 php 登录脚本。该代码在 IE、Firefox 和 Opera 中完美运行,但在 Safari 和 Chrome 中却不行。

在 Safari 和 Chrome 中,文本框的值为undefined. 其他浏览器完美地返回键入的值。

var button;
var name;
var pass;

function logIn()
{

    name.value = name.value.replace(/^\s+|\s+$/g,"");
    pass.value = pass.value.replace(/^\s+|\s+$/g,"");

    if(name.value == "")
    {

        alert("Please Enter A Username");

    }

    else if(pass.value == "")
    {

        alert("Please Enter A Password");

    }

    else
    {

        window.location.href = "loginScript.php?username=" + name.value + "&password=" + pass.value;

    }

}

function onLoad()
{

    button = document.getElementById('button');
    name = document.getElementById('username');
    pass = document.getElementById('password');

    button.onclick = logIn;

}

window.onload = onLoad;
4

1 回答 1

2

我相信您使用的变量 name 是 Chrome 中的保留关键字。

尝试将名称变量更改为用户名之类的变量。

var button;
var username;
var password;

function logIn()
{

    username.value = username.value.replace(/^\s+|\s+$/g,"");
    pass.value = pass.value.replace(/^\s+|\s+$/g,"");

    if(username.value == "")
    {

        alert("Please Enter A Username");

    }

    else if(password.value == "")
    {

        alert("Please Enter A Password");

    }

    else
    {

        window.location.href = "loginScript.php?username=" + username.value + "&password=" + password.value;

    }

}

function onLoad()
{

    button = document.getElementById('button');
    username = document.getElementById('username');
    password= document.getElementById('password');

    button.onclick = logIn;

}

window.onload = onLoad;

编辑:也将密码更改为密码

于 2012-06-20T20:59:25.453 回答