我正在尝试将验证放在文本框上。文本框应仅包含 5 位值,小数点后最多只能包含 4 位小数。例如,12345 ,12345.2345 如果用户输入除正则表达式以外的值,则 texbox 应该变为空白,我希望它在函数中完成,并且此函数应该是通用的,以便任何其他函数都可以使用此函数 .阿斯普克斯
<input type="number" id='inpSurfIndN' value='' runat="server" onkeyup="isFloatNumber(this.value)" />
脚本功能
<script type="text/javascript">
function isFloatNumber(value) {
var regex = /^[0-9]d{0,4}(.d{1,4})?%?$/
var regmatch = regex.test(value);
if (regmatch == null|| regmatch==false) {
alert("Please fil correct expression");
value = "";
return false;
}
return true;
}
</script>
function isFloatNumber(elem) {
var regex = /^[0-9]d{0,4}(.d{1,4})?%?$/
var regmatch = regex.test(elem.value);
if (regmatch == null|| regmatch==false) {
alert("Please fil correct expression");
elem.value = "";
return false;
}
return true;
}
<input type="number" id='inpSurfIndN' value='' runat="server" onkeyup="isFloatNumber(this)" />
<input type="number" id='inpSurfIndN1' value='' runat="server" onkeyup="isFloatNumber(this)" />
<input type="number" id='inpSurfIndN2' value='' runat="server" onkeyup="isFloatNumber(this)" />
您可以使用上面的代码片段,它将适用于 n 个输入。
更新值 = ";不更新 UI 元素。您应该通过传递this
来访问UI Element对象并更新值,this.value = " "
否则您应该使用像document.getElementbyId((这样的选择器来访问这些对象,如document.getElementbyId('inpSurfIndN').value = ""
您可以使用以下逻辑的方法之一,
function isFloatNumber(obj) {
var regex = /^[0-9]d{0,4}(.d{1,4})?%?$/
var regmatch = regex.test(obj.value);
if (regmatch == null || regmatch == false) {
alert("Please fil correct expression");
obj.value = "";
return false;
}
return true;
}
<input type="number" id='inpSurfIndN' value='' runat="server" onkeyup="isFloatNumber(this)" />
var n = document.getElementById("numPeople"),
r = document.getElementById("result");
n.addEventListener("keyup", function(e) {
var regex = /^[0-9]d{0,4}(.d{1,4})?%?$/
var regmatch = regex.test(n.value);
if (regmatch == null|| regmatch==false) {
alert("Please fil correct expression");
n.value='';
return false;
}
}, false);
<input id="numPeople" type="number" min="0" value="" placeholder="Pick a number" />
您无法访问作为参数传递的值变量,它不引用输入框的值 相反,您可以访问该元素并更改值,如下所示:
function isFloatNumber(eve) {
var regex = /^[0-9]d{0,4}(.d{1,4})?%?$/
var regmatch = regex.test(value);
if (regmatch == null|| regmatch==false) {
alert("Please fil correct expression");
var elem = eve.currentTarget;
elem.value = "";
return false;
}
return true;
}