首页 > 解决方案 > 输入结果的问题

问题描述

我在输入结果方面遇到了一些问题。我制作了一个按钮,该按钮调用一个检查空输入字段的函数,但是当我单击它时,它只是落到最后一个 if 语句并显示它不是空的。

我已经尝试过制作空格数组、每个输入字段的函数以及包含所有输入变量的函数。他们都没有工作。

这是我正在尝试的:

function Bt() {
  //Event Listeners
  document.addEventListener("click", Bt);
  chk();
}


function chk(n, e, p) {
  var n = document.getElementById("Nome");
  var e = document.getElementById("Email");
  var p = document.getElementById("Pass");
  var txt = ""
  var B = [10];
  [0] = "" 
  [1] = " " 
  [2] = "  " 
  [3] = "   " 
  [4] = "    " 
  [5] = "     " 
  [6] = "      " 
  [7] = "       " 
  [8] = "        " 
  [9] = "         " 
  [10] = "          "
      if (n.length == null || n.length == B) {
        txt = "Escr

eva algo no nome"
    document.getElementById("Info").innerHTML = txt;


  } else txt = "A1";
  document.getElementById("Info").innerHTML = txt;

  if (e.length == null || n.length == B) {
    txt = "Escreva algo no email"
    document.getElementById("Info").innerHTML = txt;


  } else txt = "A2";
  document.getElementById("Info").innerHTML = txt;

  if (p.length == null || n.length == B) {
    txt = "escreva algo na senha"
    document.getElementById("Info").innerHTML = txt;

  } else txt = "A3";
  document.getElementById("Info").innerHTML = txt;



}

这是我尝试过的:

function check(n, e, p) {


  //Var and Gets
  var n = document.getElementById("Nome");
  var e = document.getElementById("Email");
  var p = document.getElementById("Pass");
  var txt = "";

  //code

  if (n, e, p < 1 || n, e, p == "" || n, e, p == null || n, e, p == " ") {
    txt = "Estes campos: Nome, Email e Senha 
    são obrigatórios.
    "
    document.getElementById("Info").innerHTML = txt;
  } else txt = "pronto";
  document.getElementById("Info").innerHTML = txt;


}

标签: javascripthtml

解决方案


您的代码中有很多错误。首先,function Bt()不叫。要正确使用addEventListener,它应该在任何功能之外。像这样使用它: document.addEventListener("click", Bt);

此外,如果调用chk()是您的Bt函数中的唯一代码,那么您可以在单击事件侦听 器中替换Bt为。chkdocument.addEventListener("click", chk);

下一个问题是你的chk(n, e, p)功能。如果要在函数中声明变量,则无需填写()函数部分。因此,它应该看起来像这样:chk() {}{}.

if ()有同样的重复问题。括号内的条件检查不正确。每个条件都必须单独检查。因此(n, e, p < 1 || n, e, p == "" || n, e, p == null || n, e, p == " "),实际上应该是:

(n < 1 && e < 1 && p < 1 || n == "" && e == "" && p == "" || n == null && e == null && p == null || n == " " && e == " " && p == " ")请注意,我用&&“and”运算符替换了逗号。它检查每个语句是否为真,如果至少有一个不为真,则移动到 or 运算符 ( ||) 内的下一个语句块。

这些是我在您提供给我们的第二个代码片段中发现的错误。可能还有更多。


推荐阅读