2012-06-20 152 views
0

下面的JavaScript代码是每次用户选择我的网页上的登录按钮时执行的,该功能基本上确保usernamepassword字段接收到文本(然后去掉任何前导或尾随的空白),然后将浏览器重定向到php登录脚本。该代码完全适用于IE,Firefox和Opera,但它不适用于Safari和Chrome。JavaScript工作正常在IE,Firefox和Opera中,但在Safari或Chrome中没有(Textbox.value)

在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; 
+3

我建议在URL中没有把密码。 – 11684

+0

姓名和通行证分配在哪里? – Musa

+0

如果您不删除空格,Safari或Chrome中会发生什么情况?在onLoad()中加入 – 11684

回答

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; 

编辑:更改通行证密码,以及

+0

这就是它!非常感谢......这让我疯狂了好几个小时! – slickboy

+1

如果您已经打印了名称并将变量传递给Chrome控制台,您会发现它们的打印方式不同。这是因为pass变量包含一个有效的DOM元素并且名称有..别的东西。的console.log(姓名,通); – TheZ

+0

再次感谢....当谈到测试javascript时,我有点旧式...我通常只是用alert(variableName)做的! – slickboy

相关问题