Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .HTML文件在URL中有密码_Javascript_Html_Url - Fatal编程技术网

Javascript .HTML文件在URL中有密码

Javascript .HTML文件在URL中有密码,javascript,html,url,Javascript,Html,Url,我通常用Java编写代码,但我知道一点HTML,所以我决定学习更多。我的问题是我有一个密码字段和一个提交按钮。当我按下按钮时,它会检查密码是否正确,然后询问您的姓名。然后,它将一个文本字段更改为正确,NAME。问题是,当您点击submit时,提交的代码会添加到URL中,因此如果您键入密码作为密码,则?密码会添加到URL中。这对我来说很好,但由于URL被更改,页面会重新加载,使文本字段恢复正常。我正在使用谷歌浏览器。这是因为我运行的是一个.HTML文件,而不是一个网站 <!DOCTYPE h

我通常用Java编写代码,但我知道一点HTML,所以我决定学习更多。我的问题是我有一个
密码字段
和一个
提交
按钮。当我按下按钮时,它会检查密码是否正确,然后询问您的姓名。然后,它将一个文本字段更改为
正确,NAME
。问题是,当您点击submit时,提交的代码会添加到URL中,因此如果您键入
密码
作为密码,则
?密码
会添加到URL中。这对我来说很好,但由于URL被更改,页面会重新加载,使文本字段恢复正常。我正在使用谷歌浏览器。这是因为我运行的是一个.HTML文件,而不是一个网站

<!DOCTYPE html>
<html>

<head>
    <link rel="stylesheet" href="style.css">
    <title>Ryan Club Homepage</title>
    <script>
    function codeEnter(){
    var s = document.getElementById("in").value;
    var correct = "lolliPiper5";
    if(s === correct){
        var name = prompt("What is your name");
        document.getElementById("cde").innerHTML = "You got the password right!, " + name;
    }
    }
</script>
</head>

<body style="font-family:'Myriad Pro' ">

        <form onsubmit="codeEnter();">
            <input type="password" name="code" id="in">
            <br />
            <input type="submit"  value="Ready!">
        </form>
</body>

</html>

瑞安俱乐部主页
函数codenter(){
var s=document.getElementById(“in”).value;
var correct=“lolliPiper5”;
如果(s==正确){
var name=prompt(“您叫什么名字”);
document.getElementById(“cde”).innerHTML=“密码正确!”,+name;
}
}


谢谢大家!

您需要使用JavaScript/jQuery来阻止表单提交。我使用的是jQuery 2.1.1

对于password字段,现在假设它是123

e.preventDefault()方法停止元素的默认操作。在这里,它停止submit按钮,将表单提交到表单的action属性中指定的URL

$(文档).ready(函数(){
$(“#name_container”).hide();
$(“#提交”)。在(“单击”上,函数(e){
e、 预防默认值();
$password=$('#password').val();
如果($password==“123”){
$(“#密码_容器”).hide();
$(“#名称#容器”).show();
$(“#结果”).html(“”);
}
否则{
$(“#结果”).html(“密码不正确”);
}
$name=$(“#name”).val();
如果($name!=''&&$name!=null){
$(“#形式”).hide();
$(“#result”).html(“你做对了,+$name);
}
})
})

密码:
姓名:
在您的简化(我希望)代码中,您至少需要设置

<form onsubmit="return codeEnter()">
...
// and in the script
function codeEnter(){
        var s = document.getElementById("in").value;
        var correct = "lolliPiper5";
        if(s === correct){
           var name = prompt("What is your name");
           document.getElementById("cde").innerHTML = "You got the password right!, " + name;
        }
        else return false; //do not submit
}

...
//在剧本里
函数codenter(){
var s=document.getElementById(“in”).value;
var correct=“lolliPiper5”;
如果(s==正确){
var name=prompt(“您叫什么名字”);
document.getElementById(“cde”).innerHTML=“密码正确!”,+name;
}
else返回false;//不提交
}

在现实世界中,如果您确实想要提交密码,您可以将表单代码更改为对用户隐藏

<form onsubmit="codeEnter();" method="post">

默认情况下,表单通过GET请求将数据提交给服务器,该请求导致值显示在url中,因此这通常仅用于进行诸如页码(?page=num)等查询(所有不敏感数据)

但是,当您设置method=“post”时,表单使用用户不可见的post请求发送数据,并且在某些情况下在发送前进行了加密,因此更安全


可以找到for using method=“POST”的一个示例

寻求调试帮助的问题(“此代码为什么不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请看:。@CollinD我知道代码是有效的。我想知道.html文件在浏览器中运行的方式。我想知道是否有一种更正式的方法来实现这一点。您是否运行任何类型的服务器端脚本?如果没有,则web浏览器本身正在执行所有逻辑,web浏览器无法处理POST请求(在该请求中,密码不会附加到URL)。我推荐一个基本的PHP教程。虽然@CollinD在没有任何代码的情况下是正确的,但很难看出您在说什么。因为您提交的是同一个页面,所以它就像重新加载页面一样。它出现在URL中的原因是因为您正在使用GET请求(该请求将参数放置在URL中)。这是应该发生的事情,页面加载不是因为URL参数,而是提交所做的。@dangel我添加了代码。我以前从未使用过jQuery。你推荐我可以看的教程吗?智者说,“永远不要说永远”。因此,请尝试使用jQuery。这真的很值得。首先,您可以看一看来自或官方jquery教程的连续教程:如果没有将jquery代码链接到HTML,它是如何运行的?是否不需要
?以下是完整的代码:e是事件对象的短var引用,它将传递给事件处理程序。我已将其作为参数传递给函数。为了进一步了解e:我尝试使用jQuery,但仍然遇到同样的问题。以下是我的jQuery代码: