当前位置: 首页 > news >正文

form表单和表单控件

一、form表单

  •  form标签 有没有 必要使用

 

 

 

 

 

二、表单控件

  • 表单控件元素不要设置高度,或者以em作为高度的单位。文字和边框的距离可以使用padding来实现。

2.1、input控件

  • 使用  input type='number' 表单 有缺陷:这个表单只能输入数字,但是 字母 e、字符+、-   确是可以输入。而 表单中有e、+、-符号输入,js获取的值确是一个空字符串。如图
            
               

       如果要实现只能输入数字,需要通过事件辅助处理。这种情况 使用 text表单,也可以模拟出数字表单控件。

    <input type="text" oninput="this.value=this.value.replace(/\D/g,'')">

      如果是是在 移动端 要调用出 数字键盘的话,只能使用 number 控件,再通过事件辅助处理。

    <input type="number" oninput="this.value=this.value.replace(/\D/g,'')">
  • 数字输入框常用的控制【只能输入数字和小数点】:https://blog.csdn.net/weixin_42171955/article/details/98734640

    • 只允许输入数字(整数:小数点不能输入)
      <input type="text" onkeyup="value=value.replace(/[^\d]/g,'')" >
    • 允许输入小数(两位小数)
      <input type="text" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" >
    • 允许输入小数(一位小数)
      <input type="text" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,1})?).*$/g, '$1')" >
    • 开头不能为0,且不能输入小数
      <input type="text" onkeyup="value=value.replace(/[^\d]/g,'').replace(/^0{1,}/g,'')" >
    • 只能输入数字或小数且第一位不能是0和点且只能有一个点
      <input type="text" onkeyup="value=value.replace(/[^1-9]{0,1}(\d*(?:\.\d{0,2})?).*$/g, '$1')" >

     

 

2.2、单选框和复选框

  • 单选框和复选框  是否选中判断

    1、复选框   (value值是提交给后台的值,不管有没有选中都是不变的)

      只要复选框标签上有 checked 这个属性,不管这个属性有没有值或是false还是true,都是表示选中,在js中获取的 checked 属性值就是true;

      当复选框标签上没有 checked 这个属性,则在js中获取的 checked 属性值就是false;

      当选中这个复选框的时候,在js中获取的 checked 属性值就是true

    总结:不管有没有设置checkbox 这个属性,反正只要选中这个复选框,在js中获取到他的 checkbox属性都是true;反之没有选中, js获取的值就是false。

    注意:jQuery中Atrr获取checkbox 的值永远都是  undefined 。修补方法是用prop方法来解决。参考:   http://www.jb51.net/article/51136.htm

    2、单选框(同复选框)

     

    3、disabled 属性  (凡是按钮功能首选button标签,不要使用div)

    disabled 属性规定,应该禁用 input 元素(包括button标签,但是div等其他标签没有想过)。被禁用的 input 元素既不可用,也不可点击。

    4、 自定义复选框checkbox样式

         参考:https://blog.csdn.net/u014291497/article/details/52081774   或  http://www.xiumu.org/technology/style-checkboxes-with-css.shtml

       根据实际label有他的作用,所以改造了下结构:

    <label for="myCheck">
    <input type="checkbox" id="myCheck" style="display: none">
    <div></div><span>点我选中</span>
    </label>
            #myCheck + div{background-color: white;border-radius: 5px;border:1px solid #d3d3d3;width:20px;height:20px;display: inline-block;text-align: center;vertical-align: middle;line-height: 20px;}#myCheck:checked + div{background-color: #eee;}#myCheck:checked + div::after{content:"\2714";     //   \2714就是√对应的编码color: red;}    

     

2.2、select控件

 

1、select默认选中项颜色为灰色,选择后变为黑色(js实现)

参考:http://www.cnblogs.com/zywaf/p/7149929.html

 2、js中怎么判断slect标签哪个被选中了

参考 :https://blog.csdn.net/xiaoxiaoshuai__/article/details/72299446

    http://www.runoob.com/jsref/dom-obj-select.html

3、select 中 类似占位符的属性是 selected ,如果这个占位符只是提示(如,“请选择”),不能选择的话,可以在这个option标签中在加一个disabled属性。

4、select去掉默认三角   :   https://www.cnblogs.com/demonswang/p/6230705.html

5、select 文字右对齐  :  https://www.cnblogs.com/flicat/p/4446784.html

6、select中的value是和option中的value对应的;当option中没有设置value属性的话,默认option中的value值就是标签中的文本。

7、select默认文字,不出现在下拉选项中 :https://blog.csdn.net/github_35549695/article/details/53288569

 

2.3、input上传控件

自定义 文件上传的控件样式:(所有非输入型表单控件样式修改的原理都一样)

  这里以点击图片上传文件,为例:http://www.imooc.com/wenda/detail/382095

  方案1:用 label 标签事件的传递性,label 标签的事件会传递给 for 属性绑定 id 的 input 元素。

  方案2:将  input[type="file"]  铺在图片上,并设置opacity:0使其隐藏,当点击图片的时候实际上是点击的input。

  方案3:直接操作dom,可以通过  js 触发  input[type="file"]  的点击事件。(点击图片,图片的事件函数,直接去触发input的click事件)

 

 

 

 

 

 

 

 


各个表单控件在,在手机端表现

1、input[type="search"],在软键盘上确认按钮变成搜索按钮

2、什么情况触发 from 的提交行为:from的提交行为,会引起页面刷新。 

  a、回车时:1、没有submit按钮,表单里只有一个 input输入框,那么点击键盘enter就会触发提交事件【两个输入框不会触发】;

         2、只要有submit按钮,回车就会触发提交事件

  b、submit 按钮【type=submit】:点击这个按钮就会触发from的提交事件

  3、js控制提交:js的 submit(),方法可以提交。但是不会触发onsubmit事件

 

http://www.rkmt.cn/news/3911.html

相关文章:

  • form表单
  • 【Zotero7】使用Attanger和百度同步空间如何进行同步?
  • 【重点!!!】必知必会必须掌握的serializers序列化器类之Serializer和ModelSerializer核心区别
  • 助教工作总结
  • [AGC022F] Checkers 题解
  • 程序员的副业变现之路:我的双平台矩阵打法
  • MyBatis注解的运用于条件搜索实践
  • 利用k8s client-go库创建CRD的informer的操作流程
  • Golang并发编程及其高级特性
  • 元推理agi不是象人思维,而是教人思维,人类脸上挂不住啊
  • 优惠券
  • 基于ArcGIS Pro SDK 3.4.2 + C# + .NET 8 的自动化制图系统初探
  • 单例模式:线程安全,以及volatile关键字
  • 用 Python 和 Tesseract 实现验证码识别
  • 基于 Weiler–Atherton 算法的 IoU 求解
  • 25.9.13 字符编码标准
  • 哭了,散了,明白了
  • 用 Java 和 Tesseract 实现验证码识别
  • Microsoft-Activation-Scripts,好用,记录一下。
  • 9.13 模拟赛 T3
  • Docker应用 - FileBrowser
  • Cmake介绍
  • 项目案例作业1:学生信息管理系统(面向对象初步接触)
  • Linux网络:初识网络 - 详解
  • 20250909比赛总结
  • 手动下载vscode扩展的方法
  • CF1583F Defender of Childhood Dreams
  • scrollArea无法滚动
  • 【置顶】欢迎来到 ziyaojia 的主页
  • ZYNQ Ultrascale+系列部署yolo v10(暂定,若过于艰难则考虑降级或FQ)