js基础-表单验证和提交

原始提交如下:

<form action="/login" method="post" id="form1">
     <span>用户</span>
    <input type="text" name="username" id="username"/><br/>  
    <span>密码</span>
    <input type="password" name="password" id="passsword"/><br/>  
      
     <input type="submit" value="提交">    
</form>

说明:

form是一个表单,用来发送http请求。直观的说,只要用form将需要提交到服务器的标签包围,当提交的时候,就会向服务器发送有name属性的数据。所以,input内容提交必须有name属性。
action:服务器接口路径;
method:选择发送请求的方式,默认是get,通常用post。get请求会在地址栏显示参数,并且有长度限制。post则没有。
id:标识标签元素
当提交后,服务器就会得到:username=填的用户名 & password=填的密码
当点击提交后,form数据就会发送。通常提交前要校验数据。比如长度规则等。所以需要js。    
js校验:

  方法1:

      在from属性后面接着添加οnsubmit=”return false;”属性.表示不提交。true则相反。这里可以用一个方法替换。变成:
     

<form action="/back/login/login" method="post" id="form1" onsubmit="return sb1();">

然后,书写js验证规则:

function sb1(){
        var username = document.getElementById("username");
        var password = document.getElementById("passsword");
        if(trim(username.value)==null || trim(username.value)==""){
            alert("请输入用户名");
            username.focus();
            return false;
        }
        if(trim(password.value)==null || trim(password.value)==""){
            alert("请输入密码");
            password.focus();
            return false;
        }

        return true;
    }
    function trim(str){ //删除左右两端的空格
           return str.replace(/(^\s*)|(\s*$)/g, "");
    }

 js含义:

var username = document.getElementById(“username”);
表示获得id为username的标签对象,可以理解为输入用户名的那个输入框
username.value表示输入框的内容
trim是一个方法,去除字符串左右两端空格。
方法是一个串代码的执行体,调用方***执行方法中的内容。方法又叫做函数,方法由方法名,括号中的参数,大括号中的方法体组成。在js中,方法参数不用声明类型,调用方法的时候,参数按照顺序匹配。比如,trim(username),username就是str,所以,方法中的参数str就是形式参数,简称形参,而username叫做实体参数,简称实参。当调用trim(username)的时候,username就替换了str。
判断值为null或者”“空字符串用==
alert表示弹出对话框,内容是字符串,所以需要用引号括起来。
username.focus()表示焦点聚集在username这个对象,也就是输入框。
return false;return表示函数执行结束,后面的代码不执行。return false表示该函数返回一个boolean值为false。对应到表单,就是οnsubmit=”false”,表示不提交。
如果if条件都满足,则return true;提交。
||表示或者,意思是,如果username==null或者username是空字符串,条件1或者条件2为true则都是true
方法2:js控制提交表单

首先,表单元素代码如下:

<form action="/back/login/login" method="post" id="form1">
    <span>用户</span>
    <input type="text" name="username" id="username"/><br/>  
    <span>密码</span>
    <input type="password" name="password" id="passsword"/><br/>  
   
    <a href="javascript:sb();">提交</a>     
</form>

这里关于提交,页面切图通常都会用a标签或者button来提交,因为涉及到表单验证。

同样,js:

function sb(){
        var username = document.getElementById("username");
        var password = document.getElementById("passsword");
        if(trim(username.value)==null || trim(username.value)==""){
            alert("请输入用户名");
            username.focus();
            return;
        }
        if(trim(password.value)==null || trim(password.value)==""){
            alert("请输入密码");
            password.focus();
            return;
        }

        form1.submit();

    }

 js含义:

这个sb()方法没有返回值,return就是直接结束,如果没有return就一直执行完所有代码。也就是说,验证通过就会提交。
这里说明一下提交的方法,可以用form的id或者name属性表示form这个对象,然后调用submit()方法即可。
当然,推荐用document.getElementById(“form1”).submit();  

全部评论

相关推荐

头像
04-27 15:11
已编辑
华东师范大学 算法工程师
暑期实习从2月开始投,面了两个月,流程该挂的都挂完了,腾讯字节一共号称是1.7w个hc,不知道都发给谁了,估计今年秋招要难顶。Timeline米哈游、美团、蚂蚁、微软等公司直接简历挂穿,没进面。携程:3.3&nbsp;投递、测评3.12&nbsp;笔试3.18&nbsp;一面3.25&nbsp;二面4.13&nbsp;ai面(hr面)4.14&nbsp;英语测评4.23&nbsp;offer(已拒)腾讯:2.6&nbsp;测评2.28&nbsp;wxg一面3.5&nbsp;wxg二面(挂)3.11&nbsp;teg一面3.21&nbsp;teg二面(取消)3.31&nbsp;teg一面4.10&nbsp;teg二面(挂)4.21&nbsp;wxg一面4.24&nbsp;wxg二面(挂)字节:1.28&nbsp;aml约面(取消)3.17&nbsp;火山一面(挂)4.8&nbsp;aml一面(挂)4.20&nbsp;抖音data一面(挂)阿里:3.23&nbsp;投递、测评3.28&nbsp;笔试3.31&nbsp;淘天一面4.8&nbsp;钉钉一面4.9&nbsp;淘天二面4.10&nbsp;阿里控股一面4.12&nbsp;钉钉二面(取消)4.15&nbsp;淘天hr面4.16&nbsp;淘天offer(已接)4.21&nbsp;高德一面(取消)4.22&nbsp;淘宝闪购一面(取消)面试最大的感触是,现在撞上ai转型,一堆老业务急着转向,新业务非常不成熟,研究型的组bar非常高根本进不去,业务侧挂着算法的岗位干的都是工程活,面试却又要问算法,另外agent的落地也远没有那么广,绝大多数还是那套写死的系统调一下llm&nbsp;api或者做做rag,其余少部分真的在搭agent的,基本不能在线上服务用什么很智能的模型,现阶段成本太高,进去大概率就是给垃圾模型从工程方面兜底,除了业务场景的应用和数据经验以外,技术方面很难有什么提升。算法岗做不了基模的还是去搜广推好,之前判断失误了完全没投,秋招不知道还进不进得去。
嵌入式的小白:不错啊,淘天也是挺好的,恭喜
我的求职进度条
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务