javascript - js 验证(来自 html 输入)问题

标签 javascript html

我正在尝试验证 html 中的 2 个输入字段中的输入是否只是字符,如果不是,我想向用户展示按摩,我正在使用 html 和 js:
HTML:

  Player one name: <input type="text" id="firstname" maxlength="20"><br>
  Player two name: <input type="text" id="secondname" maxlength="20"><br>
  <input type="submit" value="Submit" id="submitBtn" onclick="insertNames();"/>

js:

function insertNames()
{
    var nameOne = document.getElementById("firstname").value; //saves values
    var nameTwo = document.getElementById("secondname").value;
    var letters = /^[A-Za-z]+$/;   
    if(nameOne == "" || nameTwo == "" || !(nameOne.match(letters)) || !(nameTwo.match(letters))&& (nameOne == nameTwo)){
    if( nameOne == nameTwo )
        alert("Please enter only characters.")
        break;
    }else
         console.log("ok");
}

当我尝试输入带有数字的字符串时,它不会打印到控制台,但也不会显示窗口警报,我做错了什么?
谢谢!

最佳答案

将您的 if 语句更改为:

if( nameOne === "" || nameTwo === "" || !(nameOne.match(letters)) || !(nameTwo.match(letters)) ) {
  alert("Please enter only characters.")
} else {
  console.log("ok");
} 

这将只检查您的 nameOne 和 nameTwo 变量中的字符。

然后单独声明:

if( nameOne === nameTwo ) {
  alert( "Player names are identical!" );
} else {
  console.log( "ok" );
}

非常重要:请注意,我使用了三个等号,而不是两个。这称为严格比较器,还会检查类型。更多 here

关于javascript - js 验证(来自 html 输入)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33191430/

相关文章:

javascript - 如何将 html 表单与 aframe.js 一起使用?

html - 我可以使用纯 CSS 根据 URL 的获取参数设置链接样式吗?

javascript - 无法启动 "document.write();"中的功能

javascript - 如何防止表单被提交?

javascript - 如何使用 javascript 在 html 中显示一个 div 并隐藏其他所有内容

javascript - 在javascript中命名一个元素

jQuery 选择选项列表在 IE6 中更新得不够快

javascript - 在 onclick 事件的上下文中, "this"是如何工作的? (JavaScript)

javascript - 如何设置联系表7电话号码格式###-####-###

javascript - 覆盖之前绑定(bind)的点击事件