js-form进行reset重置

网页表单重置技巧
本文介绍了通过JavaScript操作网页表单的两种重置方法:一是利用form元素的id,通过getElementById方法进行重置;二是利用form元素的name属性,直接调用其reset方法。这些方法适用于需要清除表单数据的场景。

 

(需要注意:做这个reset和submit时页面不能有这两个id和名称)

<form id="form1" name="formName" action=""></form>

 

一.通过form的id

document.getElementByIdx_x("form1").reset();

 

二.通过form的name

document.formName.reset();

 

转载于:https://www.cnblogs.com/hwaggLee/p/4598429.html

<think>我们有两个需求: 1. 让搜索按钮和输入框放在同一行(即设备IP输入框、设备ID输入框和按钮在同一行) 2. 之前的需求:输入框长度固定,输入框宽度固定,字体设置,两个按钮左右对称 注意:用户之前的表单结构是三个表单项(两个输入框和一个按钮组),现在希望将按钮和输入框放在同一行,意味着三个表单项应该在同一行排列。 实现思路: - 将整个表单设置为flex布局,并允许换行(如果需要的话)。 - 每个表单项(el-form-item)设置为行内块或者flex项,并设置合适的间距。 - 注意按钮组原本在一个el-form-item里,现在我们要让三个el-form-item在同一行。 但是,用户之前的代码中,按钮是两个按钮在一个el-form-item里。现在我们要让这个按钮组的el-form-item和前面两个输入框的el-form-item在同一行。 修改步骤: 1. 将el-form的display设置为flex,并设置flex-wrap为wrap(如果一行放不下可以换行,但这里我们要求在同一行)。 2. 每个el-form-item设置为flex-shrink:0(不收缩)且设置合适的外边距。 3. 由于按钮组有两个按钮,我们可以将这个el-form-item内部的按钮用div包裹,并设置flex布局来实现对称。 另外,由于用户要求输入框固定宽度,按钮固定宽度,我们可以直接设置。 由于在同一行,我们可能需要调整每个表单项的宽度,以保证它们在同一行内。 代码调整: 注意:Element UI中,el-form-item默认是块级元素,会独占一行。所以我们需要覆盖样式。 以下是修改后的代码: </think># Element UI表单布局美化:输入框与按钮同行设计 在Element UI中让输入框(el-input)和按钮(el-button)放在同一行,可以通过调整el-form-item的布局方式实现。下面是完整代码解决方案: ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Element UI表单布局美化</title> <!-- 引入Element UI样式 --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: "Microsoft YaHei", sans-serif; } body { display: flex; justify-content: center; align-items: center; min-height: 100vh; background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); padding: 20px; } .container { width: 90%; max-width: 900px; background: white; border-radius: 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15); overflow: hidden; } header { background: linear-gradient(to right, #409EFF, #337ecc); color: white; padding: 25px 30px; } header h1 { font-size: 28px; margin-bottom: 10px; font-weight: 600; } header p { opacity: 0.9; font-size: 16px; } .content { padding: 30px; } .form-container { background: #f8f9fc; border-radius: 8px; padding: 25px; margin-top: 20px; border: 1px solid #ebeef5; } .search-form { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-end; } /* 输入框样式 */ .form-item { margin-bottom: 0; flex: 1; min-width: 220px; } .form-item label { display: block; margin-bottom: 8px; font-weight: 500; color: #606266; font-size: 14px; } .el-input { width: 100%; } .el-input__inner { height: 42px; font-size: 15px; border-radius: 6px; padding: 0 15px; font-family: 'Roboto', sans-serif; color: #303133; border: 1px solid #dcdfe6; transition: all 0.3s; } .el-input__inner:focus { border-color: #409EFF; box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2); } /* 按钮组样式 */ .button-group { margin-bottom: 0; margin-left: auto; display: flex; gap: 15px; } .el-button { width: 100px; height: 42px; border-radius: 6px; font-weight: 500; font-size: 15px; letter-spacing: 0.5px; transition: all 0.3s ease; border: none; } .el-button--primary { background: linear-gradient(to right, #409EFF, #66b1ff); box-shadow: 0 4px 10px rgba(64, 158, 255, 0.3); } .el-button--primary:hover { background: linear-gradient(to right, #66b1ff, #409EFF); transform: translateY(-2px); box-shadow: 0 6px 14px rgba(64, 158, 255, 0.4); } .el-button--primary:active { transform: translateY(0); } .el-button--reset { background: linear-gradient(to right, #909399, #a6a9ad); color: white; box-shadow: 0 4px 10px rgba(144, 147, 153, 0.3); } .el-button--reset:hover { background: linear-gradient(to right, #a6a9ad, #909399); transform: translateY(-2px); box-shadow: 0 6px 14px rgba(144, 147, 153, 0.4); } .instructions { background: #f0f7ff; border-left: 4px solid #409EFF; padding: 15px 20px; margin-top: 30px; border-radius: 4px; } .instructions h3 { color: #409EFF; margin-bottom: 10px; font-size: 18px; } .instructions ul { padding-left: 20px; } .instructions li { margin-bottom: 8px; line-height: 1.6; } @media (max-width: 768px) { .search-form { flex-direction: column; align-items: stretch; } .button-group { margin-left: 0; justify-content: center; } .form-item { min-width: 100%; } } </style> </head> <body> <div class="container"> <header> <h1>Element UI 表单布局美化</h1> <p>实现输入框与按钮在同一行的美观布局</p> </header> <div class="content"> <h2>设备查询表单</h2> <div class="form-container"> <el-form class="search-form"> <!-- 设备IP输入框 --> <el-form-item class="form-item" label="设备IP"> <el-input placeholder="请输入设备IP地址"></el-input> </el-form-item> <!-- 设备ID输入框 --> <el-form-item class="form-item" label="设备ID"> <el-input placeholder="请输入设备ID"></el-input> </el-form-item> <!-- 按钮组 - 与输入框在同一行 --> <el-form-item class="button-group"> <el-button type="primary">搜索</el-button> <el-button class="el-button--reset">重置</el-button> </el-form-item> </el-form> </div> <div class="instructions"> <h3>实现要点说明:</h3> <ul> <li>使用<strong>Flexbox布局</strong>让表单项在同一行排列</li> <li>设置<strong>flex-wrap: wrap</strong>确保在小屏幕时自动换行</li> <li>按钮组使用<strong>margin-left: auto</strong>实现右侧对齐</li> <li>输入框宽度设置为<strong>100%</strong>填充容器,高度固定为42px</li> <li>按钮固定宽度(100px)和高度(42px)保持一致性</li> <li>使用CSS渐变和阴影增强按钮视觉效果</li> <li>添加媒体查询实现移动端响应式布局</li> </ul> </div> </div> </div> <!-- 引入Element UI JS --> <script src="https://unpkg.com/vue@2/dist/vue.js"></script> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <script> new Vue({ el: '.container', }); </script> </body> </html> ``` ## 实现原理与关键技术点 ### 1. Flexbox布局实现同行排列 ```css .search-form { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-end; } ``` 使用Flexbox布局是让元素保持在同一行的关键方法,`flex-wrap: wrap`确保在小屏幕时自动换行以适应不同设备。 ### 2. 按钮右侧对齐技巧 ```css .button-group { margin-bottom: 0; margin-left: auto; /* 关键属性 */ display: flex; gap: 15px; } ``` 通过`margin-left: auto`可以将按钮组推至右侧,实现与输入框在同一行并且靠右对齐的效果。 ### 3. 输入框和按钮尺寸控制 ```css /* 输入框高度固定 */ .el-input__inner { height: 42px; } /* 按钮固定尺寸 */ .el-button { width: 100px; height: 42px; } ``` 设置固定的宽度和高度确保了表单元素的统一性,使布局更加整齐美观。 该解决方案响应式设计完善,在移动设备上会自动调整为垂直布局,保证在各种屏幕尺寸下都有良好的显示效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值