0

How to allow the user input to be only -Ve or +Ve

using java script.

I have tried something as follows but it is not allowing any value in the text box to be entered.

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;
}

This is how i called

onkeyup="rhFactor(this)"

UPDATE :

function validTxtBoxObj(txtBoxObj)
{
    if(txtBoxObj != null) return true;
    return false
}

Please help me to get this work.

4

2 回答 2

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 所指出的,您必须在用户完成输入后运行上述验证,例如提交或单击事件。

于 2012-11-28T12:22:10.797 回答
0

正如您所写,您只允许在 text box 中使用 -Ve 或 +Ve 值。这不包括诸如+or之类的值+V,您在键入时需要(并且您挂上keyup)。粘贴整个值 ( Ctrl+V) 应该可以。

相反,检查change事件的有效性 - 当用户完成输入并转向下一个元素时。

jsfiddle.net 上的演示

于 2012-11-28T12:18:57.243 回答