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));
});