The quickest:
<input type="text" onkeyup="this.value = this.value.replace(/\D/g, '')">
That won't stop people from pasting things in with their mouse, so an onchange and onclick are probably desirable, too.
The cleanest (or at least a clean way to do it):
function forceNumeric() {
this.value = this.value.replace(/\D/g, '');
}
If you're using a JS framework, give all your numeral-only inputs a class that indicates the fact (class="numeric" or something like that), and add forceNumeric as a callback for keyup, change, and click to any input element with that class:
$('.numeric').keyup(forceNumeric).change(forceNumeric).click(forceNumeric);
If you're using straight JS (I'd recommend not using straight JS), either use element.addEventListener, or onkeyup, onchange, and onclick.