表单事件案例

  1. <style>
  2. *{
  3. padding: 0;
  4. margin: 0;
  5. box-sizing: border-box;
  6. }
  7. form{
  8. width: 26.875em;
  9. height: 15em;
  10. padding: 2em;
  11. display: grid;
  12. grid-template-rows: repeat(4,1fr);
  13. background-color: rgb(215, 246, 253);
  14. place-content: center;
  15. /* place-items: center; */
  16. }
  17. h2{
  18. text-align: center;
  19. color: green;
  20. }
  21. input{
  22. height: 2em;
  23. padding: 0 1em;
  24. }
  25. </style>
  26. <body>
  27. <form action="">
  28. <h2>用户登录</h2>
  29. <p>用户名:<input type="text" name="uname" onblur="check(this)"></p>
  30. <p>密 码:<input type="password" name="pwd" onblur="check(this)"></p>
  31. <button>登 录</button>
  32. </form>
  33. <script>
  34. let btn=document.querySelector('button');
  35. btn.onclick=()=>{
  36. // 阻止表单的默认提交行为:
  37. // 方法一:return false
  38. // return false;
  39. // 方法二:event.preventDefault()
  40. event.preventDefault();
  41. // 阻止冒泡
  42. event.stopPropagation();
  43. // 非空验证
  44. // 表单内的每个元素都有一个form属性与当前表单绑定,可利用其获取每个元素的值。
  45. let uname=btn.form.uname;
  46. let pwd=btn.form.pwd;
  47. if(uname.value==''){
  48. alert('用户名不能为空!');
  49. return false;
  50. uname.focus();
  51. }
  52. if(pwd.value==''){
  53. alert('密码不能为空!');
  54. return false;
  55. pwd.focus();
  56. }
  57. alert('登录成功!');
  58. }
  59. function check(obj){
  60. // 方法二:event.preventDefault()
  61. event.preventDefault();
  62. // 阻止冒泡
  63. event.stopPropagation();
  64. // 非空验证
  65. if(obj.value==''){
  66. alert(obj.parentNode.innerText + '不能为空!');
  67. return false; //必需写在obj.focus()前面,否则死循环,一直弹窗。
  68. obj.focus();
  69. }
  70. }
  71. </script>
  72. </body>

常用的字符串,数组api

  1. const pp='好好学习,天天向上!';
  2. // 常用的字符串API
  3. // 1.length:获取长度
  4. console.log(pp.length);
  5. // 2.indexOf()判断指定字符在目标字符串中的索引
  6. console.log(pp.indexOf('天天')); // 返回 5
  7. // 当不存在时,返回-1
  8. console.log(pp.indexOf('李')); // 返回 -1
  9. // 3.search() 功能跟indexOf一样,但支持正规表达式且语义化更好。
  10. console.log(pp.search('天天')); // 返回5
  11. // 4.``模板字面量,可用作字符串拼接等。
  12. // 5.split()把字符串转成数组,如果参数为空字符串,则会将原始字符串打散,返回以单个字符组成的数组
  13. console.log(pp.split(',')); //返回 [ '好好学习', '天天向上!' ]
  14. // 6.join()把数组用指定字符拼装成字符串
  15. const arr=['my','name','is','lst'];
  16. console.log(arr.join(' ')); // 返回 my name is lst
  17. // 7.replace('要替换的内容','新内容')字符串替换
  18. console.log(pp.replace('好好','日日')); // 返回 日日学习,天天向上!
  19. // 8.slice(起始索引,结束索引)字符串截取。注:不包含最后一个
  20. console.log(pp.slice(0,3)); // 返回 好好学
  21. // 9.substr(开始索引,数量)字符串截取,如果只有一个参数,表示从开始索引起到之后的所有字符。支持反向截取(原始字符串从后往前数索引分别为:-1,-2,……,截取时也是从起始位置往后数)
  22. console.log(pp.substr(0,4)); // 返回 好好学习
  23. console.log(pp.substr(-5,1)); //返回 天
  24. console.log(pp.substr(-5,5)); //返回 天天向上!
  25. console.log(pp.substr(-5)); //返回 天天向上!
  26. // 10.toLowerCase转小写;toUpperCase转大写
  27. let str='abcde';
  28. console.log(str.toLowerCase()); // 返回abcde
  29. console.log(str.toUpperCase()); // 返回ABCDE
  30. // 11. link生成a链接
  31. console.log(pp.link('http://baidu.com')); // 返回 <a href="http://baidu.com">好好学习,天天向上!</a> 
  32. // 常用的数组API
  33. let Arr=[1,2,3,4,5];
  34. // 1.rest语法 ...arr
  35. let arr2=[...Arr];
  36. console.log(arr2); // 返回 [ 1, 2, 3, 4, 5 ]
  37. console.log([0,...Arr,7,8,9]); // 返回 [ 0, 1, 2, 3, 4, 5, 7, 8, 9 ]
  38. // 2. Array.of 将离散的值转成数组
  39. console.log(Array.of(1,2,3,4,5)); // 返回 [ 1, 2, 3, 4, 5 ] ​​​​​
  40. // 3.Array.from(类数组) 将一个类数组转成数组:常用于获取DOM节点操作

更多相关文章

  1. Android(安卓)getText(@string/a)和直接使用字符的区别
  2. SQL server中字符串逗号分隔函数分享
  3. SQL Server实现split函数分割字符串功能及用法示例
  4. SQL Server实现将特定字符串拆分并进行插入操作的方法
  5. Android设备Root检测方法
  6. Android读写XML(下)——创建XML文档
  7. 在android用Google Geocoding API服务解析地址(关键词:android/GP
  8. 分组字符合并SQL语句 按某字段合并字符串之一(简单合并)
  9. SQL Server存储过程同时返回分页结果集和总数

随机推荐

  1. RelativeLayout布局的对齐属性
  2. Android占领2010的六大理由!
  3. Android退出当前应用程序的方法
  4. Android JNI打印c\c++日志信息
  5. Android 应用界面设计
  6. 【Android开发学习25】界面布局之相对布
  7. Android 下的Search
  8. 安卓APP开发中的屏幕适配问题如何解决?
  9. Android开发--NDK之环境搭建
  10. Android的设计与实现:卷I