在页面加载时重定向到另一个网页,我的JavaScript数组的内容作为URL

joh*_*nny 5 html javascript

我正在使用HTML和Javascript进行一个小练习.基本上,我有2个输入字段,我需要使用Javascript中的1个函数进行验证.第一个输入要求输入名称,如果名称少于3个字符,则会打印错误,否则将删除错误.第二个要求当地.现在,为了验证这一点,我必须首先创建一个包含大约3个位置的数组,然后比较用户输入的位置以查看它是否在数组中.如果不是,则再次打印错误.事情是这样的; 我在实时预览中收到错误.错误在屏幕上打印"无法GET/Msida,Pieta,Marsa"和"无法加载资源:服务器在控制台上响应状态为404(未找到)".问题是什么?

HTML:

<!DOCTYPE html>
<html>
<head>
    <title>Revision</title>
</head>

    <body>
        <nav id="menu"></nav>
        <a>Full Name: </a><input type="text" name="fName" id="fName" ><br/>
        <div id="divName"></div><br/>
        <a>Locality: </a><input type="text" name="locality" id="locality" ><br/>
        <div id="divLocality"></div><br/>
        <script src="js/mainScript.js"></script> 
        <script src="js/detailsScript.js"></script> 
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

var fName = document.getElementById("fName");
var locality = document.getElementById("locality");
var divName = document.getElementById("divName");
var divLocality = document.getElementById("divLocality");
var location = ["Msida", "Pieta", "Marsa"];


function validation()
{
if(this.name == "fName")
    {
        if(this.value.length < 3)
            {
                divName.innerHTML = "Name should have atleast 3 characters";
                divName.style.color = "red";
            }
        else if(this.value.length >= 3)
            {
                divName.innerHTML = "";
            }
    }
else if(this.name == "locality")
    {
        if(location.indexOf(this.value) > -1)
        {
            divLocality.innerHTML = "Location Exists";
            divLocality.style.color = "red";
        }
        else
        {
            divLocality.innerHTML = "Location doesn't Exist";
            divLocality.style.color = "red";
        }
    }

}

fName.addEventListener('focusout', validation);
locality.addEventListener('focusout', validation);
Run Code Online (Sandbox Code Playgroud)

谢谢!

dou*_*Ort 3

只需重命名您的location变量即可。您当前的代码不起作用,因为您基本上是在重新分配 URL。请参阅window.location

var location = ['a', 'b', 'c'];JavaScript 实际上会分两部分执行 :声明和赋值。声明部分 ( var location) 将被忽略,因为location总是在最初声明(至少在浏览器中)。重新分配部分 ( location = ....) 会将您重定向到location.toString