My JavaScript skills are a bit green, but I am trying to improve the following:
I am currently using a script to effect a single input element in a form by the input name attribute:
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);
}
I want all the number type inputs to behave this way - I'm using document.form...is there a 'type' method or just the 'name' method to use this?
If not, I was thinking I would use an array of the input names, but I'm not having much luck applying that idea either.
Looking for the smartest way to approach this and expand beyond the one named input in the best DRY approach possible. Thanks in advance.