Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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 为什么按钮不起作用?(b)登录系统_Javascript_Html - Fatal编程技术网

Javascript 为什么按钮不起作用?(b)登录系统

Javascript 为什么按钮不起作用?(b)登录系统,javascript,html,Javascript,Html,当我单击带有正确登录详细信息的登录按钮时,这段代码什么也没做,我从注释中得到了一些建议,以获得这段代码,我是否需要将参数添加到onClickHandler函数中?但是哪些参数 <input id="login" style="display: block" type="button" value="Log In" name="Submit" onclick="onClickHandler()" > <script> document.getElem

当我单击带有正确登录详细信息的登录按钮时,这段代码什么也没做,我从注释中得到了一些建议,以获得这段代码,我是否需要将参数添加到onClickHandler函数中?但是哪些参数

    <input id="login" style="display: block" type="button" value="Log In" name="Submit" onclick="onClickHandler()" >
    <script>
    document.getElementById("login").addEventListener("click", onClickHandler());
    function onClickHandler() {
      validate(document.getElementsByName("text1")[0].value,"Isaac",document.getElementsByName("dasnk2")[0].value,"Tewst")
    }
            </script>

document.getElementById(“login”).addEventListener(“单击”,onClickHandler());
函数onClickHandler(){
验证(document.getElementsByName(“text1”)[0]。值,“Isaac”,document.getElementsByName(“dasnk2”)[0]。值,“Tewst”)
}

除非转义内部双引号,否则不能在另一个双引号字符串中包含双引号字符串:

即:

或者,您可以将内部双引号替换为单引号:

即:


实际上,这是一堆内联javascript。您应该将其分解为事件侦听器或其他内容。此外,一旦修复了转义问题,代码中还存在其他问题,例如没有ID为“不正确”的DOM元素实例。要添加onclick侦听器,您可以通过以下几种方法:

通过直接jquery:

$('#id').on('click', function() { /* function code */ });
或者在按钮上附加一个onClick手柄:

<input id="login" style="display: block" type="button" value="Log In" onClick="DoEvent()" />

因此,就您编辑的代码而言,您需要确保您的
标记位于
标记内,并且
onClickHandler
是带有
()
,在
onclick
标记中,它不是,也不是放在括号内。另外,为了不让生活复杂化,我提供了一个示例函数
onClickHandler
,该函数将验证您的登录凭据,其中包括用户名和密码输入

<form>
<input type="text" name="username" id="username" Placeholder="enter username"><br>
  <input type="password" name="password" id="password" Placeholder="enter password"><br>
  <button id="login" style="display: block" type="button" value="Log In" name="Submit" onclick="onClickHandler()">Submit</button>
</form>

<script>
function onClickHandler() {
  var username = document.getElementById('username').value
 var pass = document.getElementById('password').value
  if (username == "admin" && pass == "Test") {
    window.open("whateverpage.html")
    alert('correct username')
  } else {
    alert('incorrect username or password')
  }
}
</script>

它应该被否决,因为它不完整..验证函数在哪里

基本问题是onClickHandler是执行的,而不是分配的(onClickHandler不是onClickHandler()),并且它是在定义之前执行的

整理你的代码

<html>
    <body>
    <input type="text" name="text1" value="bill" />
    <input type="text" name="dasnk2" />
    <input id="login" style="display: block" type="button" value="Log In" name="Submit" />
    <script>
    (function() {
        function validate( a,b,c,d) {
            console.log( a,b,c,d);
        }

        function onClickHandler() {
            validate(document.getElementsByName("text1")[0].value,"Isaac",document.getElementsByName("dasnk2")[0].value,"Tewst")
        }
        document.getElementById("login").addEventListener("click", onClickHandler);
    })();
    </script>
    </body>

</html>

(功能(){
功能验证(a、b、c、d){
控制台日志(a、b、c、d);
}
函数onClickHandler(){
验证(document.getElementsByName(“text1”)[0]。值,“Isaac”,document.getElementsByName(“dasnk2”)[0]。值,“Tewst”)
}
document.getElementById(“登录”).addEventListener(“单击”,onClickHandler);
})();

因为您错过了一个
}
某个地方。是在函数中还是在按钮中?因为我不确定,因为你的按钮违反了自1943年以来编写的所有已知最佳实践,它可能就在按钮中。嗯,我似乎没有找到丢失的
}
(为什么u-1是我的东西:(请不要问我是否需要发布问题DownVote不是我写的,但这是因为你没有展示你的调试工作。你必须说明你认为问题出在哪里,以及你试图找出哪些东西是问题的原因,也是潜在的解决方案。我想把它改成一个处理它的函数,但我只是没有一个clu。)e从何处开始要更改为函数,请创建一个函数,如
myFunction()
,并将其放置在onclick标记内,如
onclick=“myFunction()”
,然后创建一个单独的标记并定义myFunction()函数。现在有意义了吗?也不要迭代5个单独的测试,创建一个loop@N8888是的,我知道,但是idk我将如何做这个函数,比如内部部分,比如哪些代码?@DungeonMan首先在你的验证函数中添加一个for循环我已经有了一个验证函数,所以我不知道如何实现它。我应该发送整个代码吗?什么是
document.getElementsByName(“text1”)[0]。value
document.getElementsByName(“dasnk2”)[0]。value
指的是什么?您已经有两个名为=“text1”和“dasnk2”的输入了?我修改了答案以包含验证函数
<form>
<input type="text" name="username" id="username" Placeholder="enter username"><br>
  <input type="password" name="password" id="password" Placeholder="enter password"><br>
  <button id="login" style="display: block" type="button" value="Log In" name="Submit" onclick="onClickHandler()">Submit</button>
</form>

<script>
function onClickHandler() {
  var username = document.getElementById('username').value
 var pass = document.getElementById('password').value
  if (username == "admin" && pass == "Test") {
    window.open("whateverpage.html")
    alert('correct username')
  } else {
    alert('incorrect username or password')
  }
}
</script>
<form>
<input type="text" name="text1" Placeholder="something"><br>
  <input type="text" name="dasnk2" Placeholder="something else"><br>
  <button id="login" style="display: block" type="button" value="Log In" name="Submit" onclick="onClickHandler()">Submit</button>
</form>

<script>
function validate (first, second, third, fourth){/* put the validation code here */};

function onClickHandler() {
      arg1 = document.getElementsByName("text1")[0].value;
      arg2 = "Isaac";
      arg3 = document.getElementsByName("dasnk2")[0].value;
      arg4 = "Tewst";
      validate(arg1, arg2, arg3, arg4)
    }
</script>
<html>
    <body>
    <input type="text" name="text1" value="bill" />
    <input type="text" name="dasnk2" />
    <input id="login" style="display: block" type="button" value="Log In" name="Submit" />
    <script>
    (function() {
        function validate( a,b,c,d) {
            console.log( a,b,c,d);
        }

        function onClickHandler() {
            validate(document.getElementsByName("text1")[0].value,"Isaac",document.getElementsByName("dasnk2")[0].value,"Tewst")
        }
        document.getElementById("login").addEventListener("click", onClickHandler);
    })();
    </script>
    </body>

</html>