Я создаю страницу входа в систему, и я хотел бы перенаправить пользователя на другую страницу html, только если текстовое поле Html и пароль были заполнены (чем угодно).

Моя идея состоит в том, чтобы использовать для этого только Html и Javascript (поскольку мне не нужен php для отправки данных).

Итак, вот мой html, в частности, часть форм

<form name="frmTeste" onsubmit="return validaForm(this);">
            <fieldset id="usuario">
                <legend id="usuario" >Identificação do Usuário</legend>
                
                <p>Nº <input type="text" name="tNumero" id="tNumero" size="20" maxlength="15" placeholder="ID"> </p>

                <p><label for="cSenha" >Senha:</label> <input type="password" name="tSenha" id="cSenha" size="20" maxlength="12" placeholder="Senha" autocomplete="current-password"/> </p>
                    
                <input type="submit" id="botao" class="bt bt-acessar" value="Entrar" onclick="Nova(this)">

                <p>
                    Não possui uma conta? <a href="#" id="cadastrar" onclick="alert('Desculpe, ainda não é possível realizar cadastro')"> Cadastrar </a>
                </p>
            </fieldset>
        </form>

А вот и мой javascript

function validaForm(frm) {
        if(frm.tNumero.value == "" || frm.tNumero.value == null || frm.tNumero.value.lenght < 3) {
            
            alert("Por favor, indique o seu numero USP.");
            
            frm.nome.focus();
            return false;
        }else if(frm.cSenha.value == "" || frm.cSenha.value == null || frm.cSenha.value.lenght < 3){
            alert("Por favor, indique sua senha");

            frm.nome.focus();
            return false;
        }else{
            return true;
        }
    }
    function Nova(frm){
        if (validaForm(frm) == false){
            location.href = "index.html";
        }else if (validaForm(frm) == true){
            location.href = "notas.html";
        }

Я пробовал много разных способов, но безуспешно.

1
Rafael Agra 13 Авг 2020 в 03:18

3 ответа

Лучший ответ

Я думаю, это то, что вы ищете.

Вы должны изменить

<form name="frmTeste">
            <fieldset id="usuario">
                <legend id="usuario" >Identificação do Usuário</legend>
                
                <p>Nº <input type="text" name="tNumero" id="tNumero" size="20" maxlength="15" placeholder="ID"> </p>

                <p><label for="cSenha" >Senha:</label> <input type="password" name="tSenha" id="cSenha" size="20" maxlength="12" placeholder="Senha" autocomplete="current-password"/> </p>
                    
                <input type="submit" id="botao" class="bt bt-acessar" value="Entrar" onclick="validateForm(this)">

                <p>
                    Não possui uma conta? <a href="#" id="cadastrar" onclick="alert('Desculpe, ainda não é possível realizar cadastro')"> Cadastrar </a>
                </p>
            </fieldset>
        </form>

Также измените javascript

function validateForm(frm){
            window.event.preventDefault();
            frm = frm.parentNode.parentNode;
            var tNumero = document.getElementById("tNumero");
            var cSneha = document.getElementById("cSenha");
            if(tNumero.value.length < 3) {  
                alert("Por favor, indique o seu numero USP.");
                window.location.href = "/index.html";
            } else if(cSenha.value.length < 3){
                alert("Por favor, indique sua senha");
                window.location.href = "/index.html";
            }else{
               frm.setAttribute("action","/notas.html");
               frm.submit();
            }
        }
0
ZBorkala 13 Авг 2020 в 00:57

Посмотрите, поможет ли этот пример.

HTML

<form id="theForm">
  <label for="userName">UserName</label>
  <input type="text" id="userName" />
  <br />
  <label for="password">Password</label>
  <input type="password" id="password" />
  <br />
  <input type="submit" value="Login" />
</form>

JavaScript

var theForm = document.getElementById("theForm");
theForm.addEventListener('submit', function(e) {
  e.preventDefault();

  var userName = document.getElementById('userName');
  var password = document.getElementById('password');

  if (userName.value == '' || password.value == '') {
    alert('UserName and Password required!');
  } else {
    document.location.href = 'https://www.google.com';
  }
});

Fiddle: https://jsfiddle.net/5fqo4bw7/

0
RobertFrenette 13 Авг 2020 в 00:39

Вам необходимо предоставить дополнительную информацию. Что именно происходит, когда вы пытаетесь это сделать? Я заметил, что вы неправильно написали слово «длина» как «длина», что, безусловно, может быть проблемой.

0
user2360649 13 Авг 2020 в 00:40