1

現在、テキストボックスと送信時に入力を取得しています。入力を検証しています。入力は0より大きい数値である必要があり、整数で小数点を含まない必要があります。問題は、整数または小数点を含むことを検出できる方法が見つからないことです。これが私が使用しているコードです。

    txt[5] = $(this).parents('p').find('input:text').val();
    if (txt[5] == "" || isNaN(txt[5]) || txt[5] <= 0) 
    {
        alert("Incorrect Quantity");
        return false;
    }

基本的に、ご覧のとおり、ユーザーからの入力を検証しています。入力が間違っている場合はメッセージを表示したいので、現在txt[5]%1!=0を使用して INT のみが許可されていることを確認していますが、新しい答えを受け入れています。

4

3 に答える 3

4

最も簡単な方法は、テキストを数値として解析し、整数に強制し、それらが等しいかどうかを確認することです。

var numbertxt5 = Number(txt[5]);
if(numbertxt5 | 0 == numbertxt5) { /* int */
} else if (!isNaN(numbertxt5)) { /* float */
} else { /* not a number */
于 2013-10-20T19:26:27.603 に答える
3
txt[5] = parseInt($(this).parents('p').find('input:text').val(), 10);

これは数値を検証しませんが ( Nirk's answer for that を参照)、int でない場合は 1 に変換されます。

于 2013-10-20T19:12:23.253 に答える
3

これは、JavaScript には と呼ばれる数値型が 1 つしかないためnumberです。どちらintでもありませんfloatが、一度に両方のように動作します。parseIntただし、これと に使用できる 2 つの方法がありますparseFloat

var result = parseInt($(this).parents('p').find('input:text').val());
txt[5] = result;

使い方parseFloatは似ています。例えば。

var result = parseFloat($(this).parents('p').find('input:text').val());
txt[5] = result;

2 番目の例はあなたが望むものではありませんが、参照用にここに記載されています。

更新: @bfavaretto は、私が省略した基数parseIntを使用して良い点を指摘しました。このページを参照してください http://www.w3schools.com/jsref/jsref_parseint.asp

于 2013-10-20T19:13:36.587 に答える