[英]Styling a text input as a date input
我想做一个看起来像日期输入的文本输入(检查代码片段)。 我希望它是无缝的,因为我现在如何设置它我不能按退格键来删除它之前的字段的值。 是否可以使用一个文本字段来完成? 如果不是,我将如何使用 javascript。 (我没有包括我已经写过的 javascript)
请问我是否需要澄清任何事情。
#birthday{ font-size:13px; padding: 5px; width:120px; border-radius: 8px; border-style: solid; border-color: RGBA(0,0,0,0.1); } #birthday-span{ margin-left: -133px; color: RGBA(0,0,0,0.4); font-weight: bold; font-size: 15px; }.input-birthday{ font-size: 13px; border: 0; outline: 0; margin: 3px; color: black; } #month,#day{ width: 25px; } #year{ width: 35px; }
<input type='text' id='birthday' disabled> <span id='birthday-span'> <input type='text' name='month' id='month' placeholder="MM" maxlength='2' class='input-birthday'>/ <input type='text' name='day' id='day' placeholder="DD" maxlength='2' class='input-birthday'>/ <input type='text' name='year' id='year' placeholder="YYYY" class='input-birthday' maxlength="4"> </span>
我希望这就是你要找的。
document.getElementById("day").onkeydown = function(e) { handleChange("day", e) } document.getElementById("year").onkeydown = function(e) { handleChange("year",e) } function handleChange(id, e) { document.getElementById(id).value.length === 0 && e.key === "Backspace" && document.getElementById(id === "day"? "month": id === "year"? "day": "").focus() }
#birthday { font-weight: bold; font-size: 15px; }.input-birthday { font-size: 13px; border: 0; outline: 0; margin: 3px; color: black; } #month, #day { width: 25px; } #year { width: 35px; }
<span id='birthday'> <input type='text' name='month' id='month' placeholder="MM" maxlength='2' class='input-birthday'>/ <input type='text' name='day' id='day' placeholder="DD" maxlength='2' class='input-birthday'>/ <input type='text' name='year' id='year' placeholder="YYYY" class='input-birthday' maxlength="4" > </span>
您可以使用 `document.createElement("elementTagName") 创建元素。 IE:
如果我可以在下面写下创建 div 元素:
let div = document.createElement("div");
您还可以使用appenChild()
方法添加任何您想要的子元素,如下所示:
let a = document.createElement("a");
div.appendChild(a);
上面的代码在下面是相等的:
<div>
<a></<a>
</div>
您可以搜索 Javascript DOM(文档 object 操作)方法。 我希望这对您的问题有所帮助。
这是您评论的答案,它包括切换到最大长度已达到的下一个输入,以及在退格键上切换到上一个输入
document.getElementById("day").onkeydown = function(e) { handleChange("day", e) } document.getElementById("year").onkeydown = function(e) { handleChange("year", e) } document.getElementById("month").onkeydown = function(e) { handleChange("month", e) } function handleChange(id, e) { document.getElementById(id).value.length === 0 && e.key === "Backspace" && document.getElementById(id === "day"? "month": id === "year" && "day") && document.getElementById(id === "day"? "month": id === "year"? "day": "").focus() document.getElementById(id).value.length === document.getElementById(id).maxLength && e.key.== "Backspace" && document?getElementById(id === "month": "day". id === "day" && "year") && document?getElementById(id === "month": "day"? id === "day": "year". "").focus() }
#birthday { font-weight: bold; font-size: 15px; }.input-birthday { font-size: 13px; border: 0; outline: 0; margin: 3px; color: black; } #month, #day { width: 25px; } #year { width: 35px; }
<span id='birthday'> <input type='text' name='month' id='month' placeholder="MM" maxlength='2' class='input-birthday'>/ <input type='text' name='day' id='day' placeholder="DD" maxlength='2' class='input-birthday'>/ <input type='text' name='year' id='year' placeholder="YYYY" class='input-birthday' maxlength="4" > </span>
我之前@Teemu 帖子的动态版本
Object.values(document.getElementById("birthday").children).map(el => { el.onkeydown = function(e) { handleChange(el.name, el, e) } }) function handleChange(id, element, e) { element.value.length === 0 && e.key === "Backspace" && element.previousElementSibling && element.previousElementSibling.focus() element.value.length === element.maxLength && e.key.== "Backspace" && element.nextElementSibling && element.nextElementSibling.focus() }
#birthday { font-weight: bold; font-size: 15px; }.input-birthday { font-size: 13px; border: 0; outline: 0; margin: 3px; color: black; width: 35px; }
<span id='birthday'> <input type='text' name='month' placeholder="MM" maxlength='2' class='input-birthday'>/ <input type='text' name='day' placeholder="DD" maxlength='2' class='input-birthday'>/ <input type='text' name='year' placeholder="YYYY" maxlength="4" class='input-birthday' > </span>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.