尝试清除JavaScript函数中文本框中的值



我正在尝试将验证放在文本框上。文本框应仅包含 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;
}

最新更新