在 HTML 中创建一个留言簿应用程序,并在输入字段中添加一些条件

Posted

技术标签:

【中文标题】在 HTML 中创建一个留言簿应用程序,并在输入字段中添加一些条件【英文标题】:Create a guestbook application in HTML with some conditions in the input fields 【发布时间】:2017-06-21 20:59:26 【问题描述】:

我想在 html 中创建一个留言簿应用程序页面,其中有 3 个字段供用户输入:

    姓名

    电子邮件

    留言

我想让客户端检查 javascript,所以下面是我在 html 页面头部添加的代码的 sn-ps。

    对于名称,我需要设置一个条件,因此只能输入字母,不能输入数字,不能特殊字符,不能有空格或空白字段,所以我做了这个

    function Validate()
    
        var x=document.forms["guest"]["email"].value;
        var y=document.forms["guest"]["name"].value;
        var regex=/^[a-zA-Z]+$/;
    
        if( y==null || y=="" || (!y.match(regex)))
        
            alert("Please enter your Name! ");
            return false;
        
    

我的问题是:如何插入条件,使名称必须大于 3 个字母?

    对于电子邮件字段我做了这个:

    if(x==null || x=="")
    
        alert("Please enter your email address!");
        return false;
    
    var atpos=x.indexOf("@");
    var dotpos=x.lastIndexOf(".");
    
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
    
        alert("Not a valid e-mail address");
        return false;
    
    else
        return true;
    
    

这里我没有任何问题。

    对于消息字段,我需要添加一个条件,因此消息必须大于 10 个字符。

你能帮我解决这个问题吗?

谢谢

【问题讨论】:

字符串有一个可以检查的.length 属性。 了解 HTML5 输入。您正在寻找的大部分内容已经内置。 一点不相关的建议。帮自己一个忙,给你的变量有意义的名字。在 4 个月内,当您的代码更复杂并且您不记得编写这部分时,您会讨厌自己为它们命名像 xy 这样的东西。 【参考方案1】:

你真的不需要 javascript:

<form action="">
  <input type="email" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]2,4$" name="email" required title="Valid email required" required>
  <br>
  <input type="text" pattern="[a-zA-Z]3," name="name" required title="Letters only and at least 4 characters" required>
  <br>
  <input type="text" pattern=".10," name="message" required title="10 characters minimum" required>
  <br>
  <button>Submit</button>
</form>

【讨论】:

姓名的长度应超过 3 个字母。 @Nils 你是对的,我错过了最少 4 个字母。也就是说,您对pattern="[a-zA-Z]+.3," 的建议编辑是错误的,因为它会否定仅字母的要求。更正为pattern="[a-zA-Z]3,",这两者都强制执行。另外,请注意,编辑答案通常不受欢迎,即使编辑正确,这些编辑也很可能被拒绝。您对这个问题的建议是正确的:)【参考方案2】:

你应该看看 length 属性。

例如:

var y=document.forms["guest"]["name"].value;

if(y.length < 3) 
    alert("Not a valid name");
    return false;

有关w3schools 上的长度属性的更多信息


另一种选择是使用 HTML5 minlength 属性:

<label>Username: <input name=u required minlength=3></label>

W3 上的 minlength 属性的更多信息

【讨论】:

非常感谢。.length 属性非常简单。但我是一个初学者,在谷歌上搜索了几个小时以找到如何对输入字段的长度设置条件。我也为这样的消息字段解决了这个问题:“ if (y==null || x==null || z.length

以上是关于在 HTML 中创建一个留言簿应用程序,并在输入字段中添加一些条件的主要内容,如果未能解决你的问题,请参考以下文章

如何在主函数中获取整数输入并在任何类中创建该大小的数组?

如何在HTML / Javascript中创建可编辑的组合框?

我如何输入路径并在同一路径中创建所有 csv 文件的 hdf5 文件?

如何拆除 SparkSession 并在一个应用程序中创建一个新的?

数据库中创建一个学生表

在 QDialog 中创建线程并在 Qt 中向 QDialog 发出信号