0

ユーザー入力のみを許可する方法 -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
}

この仕事を手伝ってください。

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

あなたが書いたように、あなたはテキストボックスで-Veまたは+Ve値だけを許可します。これには、入力中に必要になる(およびフックする)やの+ような値は含まれません。値全体()を貼り付けると機能するはずです。+VkeyupCtrl+V

代わりに、changeイベントの有効性を確認してください。ユーザーが入力を終了して次の要素に移ったときです。

jsfiddle.netでのデモ

于 2012-11-28T12:18:57.243 に答える