【发布时间】:2021-11-18 10:44:31
【问题描述】:
我的 JavaScript 技能有点不成熟,但我正在努力改进以下方面:
我目前正在使用脚本通过输入名称属性来影响表单中的单个输入元素:
HTML:
<input type="number" class="form-control"
id="floatingInputGrid"
name="hoursstagingbudget" value="0" >
<label for="floatingInputGrid">Hours Staging Budget</label>
JavaScript:
var nameElement = document.forms.inputform.hoursstagingbudget
function nameFocus(e) {
var element = e.target || window.event.srcElement;
if ( element.value == "0" )
element.value = "";
}
function nameBlur(e) {
var element = e.target || window.event.srcElement;
if ( element.value === "" )
element.value = "0";
}
if ( nameElement.addEventListener ) {
nameElement.addEventListener("focus", nameFocus, false);
nameElement.addEventListener("blur", nameBlur, false);
} else if ( nameElement.attachEvent ) {
nameElement.attachEvent("onfocus", nameFocus);
nameElement.attachEvent("onblur", nameBlur);
}
我希望所有数字类型输入都以这种方式运行 - 我正在使用 document.form...是否有“类型”方法或只有“名称”方法来使用它?
如果不是,我想我会使用输入名称的数组,但我也没有太多运气应用这个想法。
寻找最聪明的方法来解决这个问题,并以最好的 DRY 方法扩展到命名输入之外。提前致谢。
【问题讨论】:
标签: javascript forms dom