如何仅允许用户输入
-Ve or +Ve
使用java脚本。
我尝试了以下内容,但不允许输入文本框中的任何值。
function rhFactor(txtBoxObj)
{
var pve = "+ve";
var nve = "-ve";
var ve = false;
if( validTxtBoxObj(txtBoxObj))
{
if(pve == txtBoxObj.value || nve == txtBoxObj.value )
{
ve = true;
}
if(ve == false)
{
// alert('Allowed RH Factors - +ve,-ve');
txtBoxObj.value="";
}
return false;
}
return true;
}
这就是我打电话的方式
onkeyup="rhFactor(this)"
更新:
function validTxtBoxObj(txtBoxObj)
{
if(txtBoxObj != null) return true;
return false
}
请帮助我完成这项工作。
答案 0 :(得分:1)
尝试以下方法:
if( validTxtBoxObj(txtBoxObj))
{
hasve = txtBoxObj.value.indexOf(pve) != -1 || txtBoxObj.value.indexOf(nve) != -1;
if(hasve && parseInt(txtBoxObj.value.replace(pve,'').replace(nve,''),10)+'' != 'NaN' )
{
ve = true;
} else {
// alert('Allowed RH Factors - +ve,-ve');
txtBoxObj.value="";
ve = false;
}
return ve;
}
但正如Bergi所指出的,当用户完成输入时,你必须运行上述验证,例如提交或点击事件。
答案 1 :(得分:0)
正如您所写,仅允许文本框中的-Ve或+ Ve值。这不包括+
或+V
等值,您在输入时需要这些值(并挂钩keyup
)。粘贴整个值(Ctrl+V
)应该有效。
相反,检查change
事件的有效性 - 当用户完成输入并转向下一个元素时。