按钮不使用 onClick 重定向 - Javascript HTML

Button don't redirect using onClick - Javascript HTML

我在一个简单的网站上工作,我使用一个按钮进入主页面,但没有任何反应,只有在我不使用该功能时才有效,请参阅:

这个不行:

按钮:

<center><input type="button" name="Entrar" onClick="iniciar()" value=" Ingresar " >

函数"iniciar()":

    <script type="text/javascript" language="javascript">

function iniciar(){
var value
var clase,nombre,validate="ATS1"
    nombre=window.prompt("Digite su primer nombre");
    clase=prompt("Digite su codigo de seccion de clase (letras en mayuscula)");

    if (clase==validate){
        value = 3;
    }
    else{
        value = 0;
    }

if (value == 3){
    window.alert("Ingreso exitoso, presione Aceptar.")
    var pag="formulario.html"   

    alert("Aceptado \nPulse Aceptar y sera redireccionado en 2 segundos.", setTimeout("location.href=pag",2000))    
     //Dos segundos para redireccionar
}
else{
    alert("Lo sentimos mucho, usted no tiene acceso a la pagina. Usted pertenece a otro curso, adios.")
    close()}
}

</script>

但如果我不使用该按钮,我会在工作页面(重定向)中直接使用 java 的脚本(无功能)

<script type="text/javascript" language="javascript">

var value
var clase,nombre,validate="ATS1"
    nombre=window.prompt("Digite su primer nombre");
    clase=prompt("Digite su codigo de seccion de clase (letras en mayuscula)");

    if (clase==validate){
        value = 3;
    }
    else{
        value = 0;
    }

if (value == 3){
    window.alert("Ingreso exitoso, presione Aceptar.")
    var pag="formulario.html"   

    alert("Aceptado \nPulse Aceptar y sera redireccionado en 2 segundos.", setTimeout("location.href=pag",2000))    
     //Dos segundos para redireccionar
}
else{
    alert("Lo sentimos mucho, usted no tiene acceso a la pagina. Usted pertenece a otro curso, adios.")
    close()}


</script>

希望他们能理解我:/ 谢谢

============================================= ====================

查看所有代码(我使用了@Moogs 发给我的语法:D):

<!doctype html>
<html>
<head>

<title>Formulario</title>
<script type="text/javascript" language="javascript">
function cerrar(){
    close()
}

function iniciar(){
var value
var clase,nombre,validate="ATS1"
    nombre=window.prompt("Digite su primer nombre");
    clase=prompt("Digite su codigo de seccion de clase (letras en mayuscula)");

    if (clase==validate){
        value = 3;
    }
    else{
        value = 0;
    }

if (value == 3){
    window.alert("Ingreso exitoso, presione Aceptar.")
    var pag="formulario.html"   

    alert("Aceptado \nPulse Aceptar y sera redireccionado en 2 segundos.");
    setTimeout(function() {
             window.location.href = pag;
        }, 2000)    
     //Dos segundos para redireccionar
}
else{
    alert("Lo sentimos mucho, usted no tiene acceso a la pagina. Usted pertenece a otro curso, adios.")
    close()}
}
document.querySelector('[type="button"]').onclick = iniciar;
</script>
</head>

<body>

<center><font face="Lucida handwriting"><h1><b><i>Formulario</i></b></h1></font></center><hr>
<br>
<center><input type="button" name="Entrar" onClick="iniciar()" value=" Ingresar ">
<input type="button" name="Salir" onClick="cerrar()" value=" Salir ">
</center>
</body>
</html>

我在这里使用你的代码,它工作正常:

检查一下:

<html>
<head>
</head>
<body>
<style>
</style>
<script type="text/javascript" language="javascript">

function iniciar(){
alert("hello");
var value
var clase,nombre,validate="ATS1"
    nombre=window.prompt("Digite su primer nombre");
    clase=prompt("Digite su codigo de seccion de clase (letras en mayuscula)");

    if (clase==validate){
        value = 3;
    }
    else{
        value = 0;
    }

if (value == 3){
    window.alert("Ingreso exitoso, presione Aceptar.")
    var pag="formulario.html"   

    alert("Aceptado \nPulse Aceptar y sera redireccionado en 2 segundos.", setTimeout("location.href=pag",2000))    
     //Dos segundos para redireccionar
}
else{
    alert("Lo sentimos mucho, usted no tiene acceso a la pagina. Usted pertenece a otro curso, adios.")
    close()}
}

</script>
 <center><input type="button" name="Entrar" onClick="iniciar()" value=" Ingresar " >
</body>
</html>

在此处勾选 Fiddle

为 setTimeout 回调使用一个函数而不是 eval 字符串,并将超时放在警报之后而不是作为警报参数。

function iniciar() {
    var value = 0;
    var clase;
    var nombre;
    var validate = "ATS1";
    
    nombre = prompt("Digite su primer nombre");
    clase = prompt("Digite su codigo de seccion de clase (letras en mayuscula)");

    if (clase === validate) {
        value = 3;
    }

    if (value == 3) {
        alert("Ingreso exitoso, presione Aceptar.");
        
        var pag = "formulario.html"

        alert("Aceptado \nPulse Aceptar y sera redireccionado en 2 segundos.");
        setTimeout(function() {
             alert('redirect');
             window.location.href = pag;
        }, 2000)
    } else {
        alert("Lo sentimos mucho, usted no tiene acceso a la pagina. Usted pertenece a otro curso, adios.");
        close();
    }
}

document.querySelector('[type="button"]').onclick = iniciar;
<input type="button" name="Entrar" value=" Ingresar " >