gpt4 book ai didi

javascript - 无法运行验证

转载 作者:行者123 更新时间:2023-11-29 23:22:11 26 4
gpt4 key购买 nike

嘿,如果使用 javascript 有空白输入,我正在尝试验证我的表单,我确实知道使用 HTML 的 require 关键字,但我真的想找出我编写的代码中的错误?

<html>
<body>
<script> function x (info) {
if(info.namex.value==" " || info.namex.value == "null")
{
alert ("Check again");
return false;
}
}
</script>
<form method = "post" name = "a" onsubmit = "return x(this)">
<input type = "text" name = "namex">
<input type = "submit" value = "submit">
</form>
</body>
</html>

最佳答案

当你有这个时:

if(info.namex.value==" ")
// -------------------^--

您不检查字符串是否为空。您检查它是否恰好有一个空格字符。两个引号之间的空格是一个字符,您的检查需要输入才能包含它。您检查用户是否按了一次空格键。要检查空字符串,您应该这样做:

if(info.namex.value=="")

不过,你也可以这样写:

if(!info.namex.value)

这将在 info.namex.value 为假时进入 if 代码块。伪值是 0undefinednull 空字符串 "" 和更多的。阅读更多相关信息 here .


此外,正如 Krzysztof Janiszewski 所说,您必须从 null 中删除引号。如果将它放在引号中,则不会与 value null 进行比较,而是与内容为“null”的字符串进行比较。 IE。您检查用户是否在输入字段中键入了“null”。

null:原始值null
“null”:内容为“n”、“u”、“l”和“l”的字符串

阅读更多关于 null here .


不过,您可能需要的是以下内容:

<html>

<body>
<script>
function x(info) {
if (!info.namex.value.match(/\S/)) {
alert("Check again");
return false;
}
}
</script>
<form method="post" name="a" onsubmit="return x(this)">
<input type="text" name="namex">
<input type="submit" value="submit">
</form>
</body>

</html>

在这一行中:

!info.namex.value.match(/\S/)

这是正则表达式 /\S/,它将匹配任何非空白字符。如果输入中只有非空白字符,就会显示警告。这意味着空格的任何组合都不会成功。如果您有 """" - 那只是空格而不是任何合法输入。你可能不想要那个。如果字符串为空 "",仍然没有非空白字符,所以仍然显示警报。

通过检查的唯一方法是输入中的任何位置是否有“可见”符号。如果你只有空格、制表符、换行符——这些都是空白。您的支票至少需要一个字母、数字、符号 - 那些空白字符。

了解有关正则表达式的更多信息 here .

关于javascript - 无法运行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50286087/

26 4 0
文章推荐: android - 如何在 Activity 中使用 Room 和 LiveData 删除 LiveData