首页 > 编程语言 >引入JavaScript自定义提示信息(账户密码不为空,必须勾选用户协议)

引入JavaScript自定义提示信息(账户密码不为空,必须勾选用户协议)

时间:2024-02-22 20:11:08浏览次数:27  
标签:username 用户名 return 自定义 JavaScript getElementById 提示信息 var document

 

当不输入用户或密码就登录时

不勾选用户协议就登录时

form表单的修改,引入了onsubmit控件,提交表单时,调用validateForm函数

<form action="/home" method="post" onsubmit="return validateForm()">

validateForm函数内容

function validateForm() {
    // 验证用户名和密码是否为空
    var username = document.getElementById("Username").value;
    var password = document.getElementById("Password").value;


    if (!username || !password) {
        alert('用户名和密码不能为空');
        return false;
    }

    // 验证是否同意协议
    var agreeCheckbox = document.getElementById("agreementCheckbox");
    if (!agreeCheckbox.checked) {//没有勾选"我已详细阅读此协议"
        alert('请先同意用户协议');
        return false;
    }

    // 通过所有验证,允许提交表单
    return true;
}

 注:此时取消了对required控件的使用

防止把人搞晕了完整html代码如下

<!--该界面由bootstrap3.4的css样式的表单为主体修改而来-->
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>我的登录页面</title>

    <!--flask项目中引入的css文件的(flask项目的css文件的路径为在static目录下)-->
    <link rel="stylesheet"
        href="/static/plugins/bootstrap-3.4.1/css/bootstrap.css">
    <style>
    .account{
        /*宽度和高度*/
        width: 500px;
        /*边框*/
        border: 1px solid rgb(102, 97, 97);
        /*左右居中*/
        margin-left: auto;
        margin-right: auto;
        /*上边距*/
        margin-top: 100px;
        /*内边距*/
        padding: 20px 40px;
        /*阴影 水平方向 垂直方向 模糊距离*/
        box-shadow: 5px 5px 5px rgba(88, 88, 88, 0.5);
    }
    .account h3{
        /*文本居中*/
        text-align: center;
        /*加粗*/
        font-weight: bold;
    }
    
</style>
</head>
<body>
    <!--form表单-->
    <form action="/home" method="post" onsubmit="return validateForm()">
        <div class="account">
            <!-- 用户名输入框 -->
            <div class="form-group">
                <label>用户名</label>
                <input class="form-control" id="Username"
                       placeholder="请输入用户名" name="username">
            </div>
            
            <!-- 密码输入框 -->
            <div class="form-group">
                <label>密码</label>
                <input type="password" class="form-control"
                       id="Password" placeholder="请输入密码"
                       name="password">
            </div>
    
            <!-- 协议及同意复选框 -->
            <div class="checkbox">
                <a href="hello.html">《某某协议》</a>
                <label>
                    <input type="checkbox" name="agree" id="agreementCheckbox">我已详细阅读此协议
                </label>
            </div>
    
            <!-- 提交按钮 -->
            <button type="submit" class="btn btn-primary">登 录</button>
        </div>
    </form>
    
    <script>
    function validateForm() {
        // 验证用户名和密码是否为空
        var username = document.getElementById("Username").value;
        var password = document.getElementById("Password").value;
        
    
        if (!username || !password) {
            alert('用户名和密码不能为空');
            return false;
        }
    
        // 验证是否同意协议
        var agreeCheckbox = document.getElementById("agreementCheckbox");
        if (!agreeCheckbox.checked) {//没有勾选"我已详细阅读此协议"
            alert('请先同意用户协议');
            return false;
        }
    
        // 通过所有验证,允许提交表单
        return true;
    }
    </script>
</body>
</html>

若觉得弹窗组件过于不友好,每次都需要关闭弹窗才能继续输入,还可以使用标签提示的方法,效果图如下

对应的JavaScript代码

function validateForm2() {
    // 验证用户名和密码是否为空
    var username = document.getElementById("Username").value;
    var password = document.getElementById("Password").value;
    var error = document.getElementById("error");

    //alert弹窗用户名
    //alert(username);


    if (!username || !password) {
        error.innerHTML = "用户名和密码不能为空";
        return false;
    }

    // 验证是否同意协议
    var agreeCheckbox = document.getElementById("agreementCheckbox");
    if (!agreeCheckbox.checked) {//没有勾选"我已详细阅读此协议"
        error.innerHTML = '请先同意用户协议';
        return false;
    }

    // 通过所有验证,允许提交表单
    return true;
}

 

标签:username,用户名,return,自定义,JavaScript,getElementById,提示信息,var,document
From: https://www.cnblogs.com/tytbook/p/18027577

相关文章

  • FastReport调用自定义方法
     在FastReport内部写一个方法,如果直接写入数值,可以被调用成功。 这种情况可以被正常调用。 但是在使用传递进来的变量,就会说不正确。类似:[SecondToString([Table1.Error_TimeTotal])],这种,就是不行。解决办法,使用事件处理,注意,要使用AfterData。方法如上图。 ......
  • el-form表单使用pattern自定义校验规则
    //正则校验的正则表达式,这里注意正则表达式中的‘\’要使用‘\\’转义constpatterns={"name":"^[a-zA-Z_][0-9a-zA-Z_]{0,}$","tel":"^1[2-9]\\d{0,}$","email":"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-......
  • 自定义控件 creator 2.4
     这个分页栏中可以收集用户自己建立的 预制资源(Prefab),方便重复多次创建和使用。要添加自定义的预制控件,只需要从 资源管理器 中拖拽相应的预制资源(Prefab)到自定义控件分页,即可完成创建。右键点击自定义控件中的元素,可以选择重命名、从控件库中删除该控件以及更换控件图标......
  • 05-JavaScript基础语法
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>JS-基础语法</title></head><body></body><script>//输出语句//1.alert()弹出警告框aler......
  • Android里使用AspectJ实现双击自定义注解
    创建注解首先创建一个双击注解。importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;​/***<pre>*desc:双击*author:刘金*......
  • 1 Spring5 自定义标签开发
    spring5 自定义脚本开发步骤1 定义bean,publicclassUser{privateStringid;privateStringuserName;privateStringemail;privateStringpassword;publicStringgetId(){returnid;}publicvoidsetId(St......
  • JavaScript 的新数组分组方法
    对数组中的项目进行分组,你可能已经做过很多次了。每次都会手动编写一个分组函数,或者使用lodash的groupBy函数。好消息是,JavaScript现在有了分组方法,所以你再也不必这样做了。Object.groupBy和Map.groupBy这两个新方法将使分组变得更简单,并节省我们的时间或依赖性。以前......
  • 一文了解广州自定义表单开源的诸多优势特点
    广州自定义表单开源可以助力企业实现提质增效、降低人工成本的发展目的,因而在通信业、电力、高校、制造业、医疗等很多行业中获得了大家的点赞与支持。广州流辰信息是一家专业性强的低代码技术平台服务商,潜心研发广州自定义表单开源工具,与客户朋友一起创造更具价值的辉煌前程。那......
  • 04-JavaScript介绍
      注意:JS是脚本语言,不需要经过编译,直接经过浏览器的解释就可以运行了。而Java语言需要先编译成class文件,再通过虚拟机进行运行。  <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>JS-引入方式</title></head><body>......
  • 自定义异常处理
    系统自定义异常处理@RestControllerAdvicepublicclassExceptionAdvice{@ExceptionHandler(ArithmeticException.class)@ResponseBodypublicResponseResultariHandleException(){ResponseResultresponseResult=newResponseResult();......