Javascript——<input>: 输入(表单输入)元素的type和样式属性

本文详细探讨了JavaScript中<input>元素的type属性,介绍了不同type值对输入框功能的影响。同时,文章还涵盖了与输入元素相关的样式设置,帮助开发者更好地控制表单输入的外观和行为。
<label for="name">Name (4 to 8 characters):</label>
<input type="text" id="name" name="name" required
       minlength="4" maxlength="8" size="10">
label {
    display: block;
    font: 1rem 'Fira Sans', sans-serif;
}

input,
label {
    margin: .4rem 0;
}

type:

< input >的工作方式相当程度上取决于type属性的值,如果未指定此属性,则采用的默认类型为text。
可用的值:

Type描述Spec
Button没有默认行为的按钮,上面显示value属性的值,默认为空
checkbox复选框,可设为选中或未选中
color用于指定颜色的控件;在支持的浏览器中,激活时会打开取色器HTML5
date输入日期的控件(年/月/日,不包括时间)。在支持的浏览器激活时打开日期选择器或年月日的数字滚轮HTML5
datetime-local输入日期和时间的控件,不包括时区。在支持的浏览器激活时打开日期选择器或年月日的数字滚轮HTML5
email编辑邮箱地址的区域。类似text输入,但在支持的浏览器和带有动态键盘的设备上会有确认参数和相应的键盘
file让用户选择文件的控件,使用accept属性规定控件能选择的文件类型
hidden不显示的控件,其值仍会提交到服务器
image带图像的submit按钮,显示的图像由src属性规定,如果src缺失,alt属性就会显示
month输入年和月的控件,没有时区HTML5
number用于输入数字的控件。如果支持,会显示滚动按钮并提供缺省验证(即只能输入数字)。拥有动态键盘的设备上会显示数字键盘
password单行的文本区域,其值会被遮盖。如果站点不安全,会警告用户
radio单选按钮,允许在多个拥有相同name值的选项中选中其中一个
range用于输入不需要精确的数字。控件是一个范围组件,默认值为正中间的值,同时使用htmlattrdefmin和htmlattrdefmax来规定值的范围HTML5
reset将表单的所有内容重置为默认值,不推荐
search用于搜索字符串的单行文字区域,输入文本中的换行会被自动去除。在支持的浏览器中可能有一个删除按钮,用于清除整个区域。拥有动态键盘的设备上的回车图标会变成搜索图标HTML5
submit用于提交表单的按钮
tel输入电话号码的控件,拥有动态键盘的设备上会显示电话数字键盘HTML5
text默认值,单行的文本区域,输入中的换行会被自动去除
time用于输入时间的控件,不包括时区HTML5
url用于输入URL的控件,类似text输入,但有验证参数,在支持动态键盘的设备上有相应的键盘HTML5
week用于输入以年和周数组成的日期,不带时区

属性

< input >元素属性包括全局HTML属性和以下属性:

属性相关的type描述
acceptfile用于规定文件上传控件中期望的文件类型
altimageimage type的alt属性,是可访问性的要求
autocomplete所有用于表单的自动填充功能
autofocus所有页面加载时自动聚焦到此表单控件
capturefile文件上传控件中媒体拍摄的方式
checkedradio,checkbox用于控制控件是否被选中
dirnametext,search表单区域的一个名字,用于在提交表单时发送元素的方向性
disabled所有表单控件是否被禁用
form所有将控件和一个form元素联系在一起
formactionimage,submit用于提交表单的url
formenctypeimage,submit表单数据集的编码方式,用于表单提交
formmethodimage,submit用于表单提交的HTTP方法
formnovalidateimage,submit提交表单时绕过对表单控件的验证
formtargetimage,submit表单提交的浏览上下文
heightimage和< img>的height属性相同,垂直方向
list绝大部分自动填充选项的< datalist>的id值
max数字type最大值
maxlengthpassword,search,tel,text,urlvalue的最大长度(最多字符数目)
min数字type最小值
minlengthpassword,search,tel,text,urlvalue的最小长度(最少字符数目)
multipleemail,file布尔值。是否允许多个值
name所有input表单控件的名字。以名字/值对的形式随表单一起提交
patternpassword,text,tel匹配有效value的模式(pattern)
placeholderpassword,search,tel,text,url当表单控件为空时,控件中显示的内容
readonly绝大部分布尔值。存在时表示控件的值不可编辑
required绝大部分布尔值。表示此值为必填项或者提交表单前必须先检查该值
sizeemail,password,tel,text控件的大小
srcimage和< img>的src属性一样;图像资源的地址
step数字type有效的递增值
type所有input表单控件的type
value所有表单控件的值,以名字/值对的形式随表单一起提交
widthimage与< img>的width属性一样
在!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <table> <tr> <td>书名:</td> <td><input type="text" id="good1" placeholder="请输入" maxlength="20"/></td> </tr> <tr> <td>推荐理由:</td> <td><input type="text"id="good2" placeholder="请输入" maxlength="20"/></td> </tr> <tr> <td>类型:</td> <td><input type="text"id="good3" placeholder="请输入" maxlength="20"/></td> </tr> <tr> <td>作者:</td> <td><input type="text"id="good4" placeholder="请输入" maxlength="20"/></td> </tr> <tr> <td colspan="2"><button onclick="reset()">登录</button> <button onclick="reset()">重置</button></td> </tr> </table> <div> <div class="book"> <div class="bookname">无极帝国武威侯传</div> <div class="name">作者:岳山</div> </div> </div> </body> </html> <script> function add(){ let boookname=document.getElementById('booknme').value let book=document.createElement('div') book.className='book' let str= <div class="bookname">${boookname}</div> <div class="author">作者:岳山${author}</div> } function reset(){ document.getElementById("good1").value="" document.getElementById("good2").value="" document.getElementById("good3").value="" document.getElementById("good4").value="" } </script> <style type="text/css"> .book{background-color: aqua; width: 20em; height: 30em; background-image: url("新建文件夹/img/OIP-C.jpg"); background-size: 100% 100%; border-radius: 33px;} .bookname{writing-mode: vertical-lr; float: right; font-size:16px; margin-right: 1em; letter-spacing: 2px; padding: 1em; font-weight: bold; color: aquamarine;} .name{float: right; font-size:16px; margin-right: 1em; letter-spacing: 2px; padding: 1em; font-weight: bold; color: aqua;} </style>
04-02
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>绿色星球 | 可持续生活社区</title> <!-- 引入 Chart.js 用于简单可视化 --> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <style> /* 基础样式重置 */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', sans-serif; background-color: #f4f8f2; /* 浅绿色背景,象征自然 */ color: #2e3d2b; line-height: 1.6; } header { background-color: #4a7c59; /* 绿色头部 */ color: white; text-align: center; padding: 2rem 1rem; } h1 { font-size: 2.2rem; } .container { max-width: 1000px; margin: 2rem auto; padding: 0 1rem; } section { background: white; margin-bottom: 2rem; padding: 1.5rem; border-radius: 10px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); } h2 { color: #4a7c59; margin-bottom: 1rem; border-bottom: 2px solid #d8e9d6; padding-bottom: 0.5rem; } /* 表单样式 */ label { display: block; margin-top: 1rem; font-weight: bold; } input[type="number"], select { width: 100%; padding: 0.6rem; margin-top: 0.5rem; border: 1px solid #ccc; border-radius: 5px; } button { background-color: #4a7c59; color: white; border: none; padding: 0.7rem 1.2rem; margin-top: 1rem; border-radius: 5px; cursor: pointer; } button:hover { background-color: #3a5f45; } /* 图表容器 */ .chart-container { height: 300px; margin-top: 1rem; } /* 论坛帖子样式 */ .post { border-left: 4px solid #a2d5ab; padding: 0.8rem; margin-top: 1rem; background-color: #f9fbf7; } </style> </head> <body> <header> <h1>🌿 绿色星球</h1> <p>推广可持续生活的环保社区</p> </header> <div class="container"> <!-- 活动日历 --> <section id="events"> <h2>📅 近期环保活动</h2> <ul> <li><strong>植树节志愿者行动</strong> - 时间:2025年3月12日 | 地点:城市公园</li> <li><strong>旧物交换市集</strong> - 时间:2025年3月20日 | 地点:大学广场</li> <li><strong>零废弃生活讲座</strong> - 时间:2025年3月25日 | 地点:线上 Zoom</li> </ul> </section> <!-- 碳足迹计算器 --> <section id="carbon-calculator"> <h2>📊 你的碳足迹计算器</h2> <p>估算你日常行为对环境的影响</p> <label for="transport">每月公共交通出行公里数(km):</label> <input type="number" id="transport" min="0" value="0" /> <label for="meat">每周吃肉次数(次):</label> <input type="number" id="meat" min="0" max="7" value="3" /> <label for="electricity">每月用电量(度):</label> <input type="number" id="electricity" min="0" value="100" /> <button onclick="calculateCarbonFootprint()">计算碳足迹</button> <div id="result" style="margin-top: 1rem; font-weight: bold;"></div> <!-- 图表显示区域 --> <div class="chart-container"> <canvas id="carbonChart"></canvas> </div> </section> <!-- 资源分享论坛 --> <section id="forum"> <h2>💬 环保资源分享论坛</h2> <p>在这里分享你的环保经验与资源!</p> <div class="post"> <strong>用户A:</strong>推荐一款超好用的可重复使用购物袋品牌 —— EcoBag!洗了几十次都没坏~ </div> <div class="post"> <strong>用户B:</strong>刚参加了社区堆肥培训,原来厨余也能变肥料!有兴趣的朋友可以一起组织一次分享会。 </div> <div class="post"> <strong>用户C:</strong>求问:二手书交易平台哪个靠谱?想减少纸质浪费。 </div> </section> </div> <!-- 主要JavaScript逻辑 --> <script> // 定义变量存储图表对象,避免重复创建 let carbonChart = null; // 碳足迹计算函数 function calculateCarbonFootprint() { // 获取用户输入的数据 const transport = parseFloat(document.getElementById("transport").value) || 0; const meat = parseFloat(document.getElementById("meat").value) || 0; const electricity = parseFloat(document.getElementById("electricity").value) || 0; // 简化的碳排放系数(单位:kg CO2) // 公交每公里约0.1kg,吃肉每次约2.5kg(红肉为主),电每度约0.5kg const transportCO2 = transport * 0.1; const meatCO2 = meat * 4 * 2.5; // 每周 × 4周 ≈ 每月 const electricityCO2 = electricity * 0.5; // 总碳足迹 const totalCO2 = transportCO2 + meatCO2 + electricityCO2; // 显示结果 const resultElement = document.getElementById("result"); resultElement.innerHTML = ` 🌍 你每月大约产生 <strong>${totalCO2.toFixed(2)} kg</strong> 的二氧化碳排放。<br> 🔹交通贡献:${transportCO2.toFixed(2)} kg<br> 🔹饮食贡献:${meatCO2.toFixed(2)} kg<br> 🔹用电贡献:${electricityCO2.toFixed(2)} kg `; // 更新图表 updateCarbonChart(transportCO2, meatCO2, electricityCO2); } // 更新图表函数 function updateCarbonChart(t, m, e) { const ctx = document.getElementById('carbonChart').getContext('2d'); // 如果已有图表,先销毁 if (carbonChart) { carbonChart.destroy(); } // 创建新的柱状图 carbonChart = new Chart(ctx, { type: 'bar', data: { labels: ['交通', '饮食', '用电'], datasets: [{ label: '碳排放量 (kg)', data: [t, m, e], backgroundColor: ['#4a7c59', '#a2d5ab', '#8bbdaa'] }] }, options: { responsive: true, plugins: { title: { display: true, text: '各领域碳排放分布' } }, scales: { y: { beginAtZero: true, title: { display: true, text: 'CO2 排放量 (kg)' } } } } }); } // 页面加载完成后初始化一个空图表(可选) window.onload = function () { updateCarbonChart(0, 0, 0); // 初始为空 }; </script> </body> </html> 在我的代码基础上加入这些
最新发布
12-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值