Loop key events
by Michael Coleman
HTML
<script src="https://www.roomstogo.com/static/js/jquery.tools.min.js"></script>
<input id="myInput" type="text" name="blah" value="" />
<input id="differentInput" type="text" name="blah" value="" />
<input id="strangeText" type="text" name="blah" value="" />
<input id="moreUniqueValues" type="text" name="blah" value="" />
<div class="result">
</div>
<br/>
<div class="loopText">
</div>
JavaScript
var arr = [
$("#myInput"),
$("#differentInput"),
$("#strangeText"),
$("#moreUniqueValues")
]
var rules = {
num: function($el, isQty){
var $qty = ($el)? $($el) : $(".qtyField");
if(request.exists($qty)){
if(isQty){
if($qty.val() == "" || $qty.val() == "0"){
$qty.val("1");
return true;
};
};
if($qty.val().indexOf(".") > -1){
$qty.val($qty.val().replace(".",""));
return true;
};
if(isNaN($qty.val())){
$qty.val($qty.val().replace(/\D+/g,""));
return true;
};
}else{
return true;
}
},
numBound: [
"#atg_store_zipCodeInput",
"#atg_store_registerDefaultZipCode",
"#zipCode",
"#deliveryZip",
"#shippingZip",
"#productLocatorInputBox",
"#fabric_swatches_zipCodeInput",
"#creditBalanceAccountNumber"
]
};
function callBack($el){
return function(){
$("div.result").text("you typed in "+ $el.selector);
}
};
$(function(){
for(var i = 0; i < arr.length; i++){
$(document).on("keyup", arr[i].selector, callBack(arr[i]));
$("div.loopText").append("<div>"+ arr[i].selector + " - has been bound </div>")
};
});
/*a better way to do the samething*/
$(document).on("keyup", rules.numBound.join(","), function(){
rules.num($(this));
});