关于 number类型的input 输入框踩坑记,js和jq获取number类型的文本值,获取不到-号,导致校验异常,完美解决办法,转换input类型。
<input type="number" class="fushu"/>
$(function(){
$(".fushu").focus(function () {
$(this)[0].type = "text";
})
$(".fushu").blur(function () {
$(this)[0].type = "number";
})
$('.fushu').bind('input propertychange', function () {
checkfushuInt($(this)[0]);
})
})
window.checkfushuInt = function (obj) {
obj.value = obj.value.replace(/[^-\d.]/g, "");
obj.value = obj.value.replace(/^[.]/, "");
obj.value = obj.value.replace("-.", "");
obj.value = obj.value.replace(/\-{2,}/g, "-");
obj.value = obj.value.replace("-", "$##$##$").replace(/\-/g, "").replace("$##$##$", "-");
obj.value = obj.value.replace(/\.{2,}/g, ".");
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
}