0

入力要素を検証して、各要素に少なくともデータが含まれていることを確認し、入力するフィールドをユーザーに通知しています。私がやっている方法は、

function validate()
{   
    var product_name  = document.getElementById('pname').value;
    var p_number      = document.getElementById('pnumber').value;
    var description   = document.getElementById('descr').value;

    if(product_name=="")
         {alert("Please fill Product Name");   return false;}
    else if(p_number=="")
         {alert("Please fill product Number"); return false;}
    else if(description=="")
         {alert("Please fill description");    return false;}
    else
         return true;

}

このコードは最適ではなく、改善する必要があると感じています。皆さんは、この検証の経験があり、いくつかのトリックを知っているかもしれません。同じ検証をより良い方法で行うのを手伝ってください。御時間ありがとうございます。

4

4 に答える 4

3

任意の数のフィールドに使用できるように、検証関数をより汎用的にする必要があります。空のスペースを防ぐためにも、trim() を使用する必要があります。

function validate(fields) {   
    for (var i = 0, l = fields.length; i < l; i++) {
        var field = document.getElementById(fields[i].id);
        if (field.value == null || field.value.trim() === '') {
            alert('Please fill in ' + fields[i].name);
            return false;
        }
    }
    return true;
}

次に、検証するために、名前とIDを渡します

var isValid = validate([
    { id: 'pname', name: 'Product Name' },
    { id: 'pnumber', name: 'Product Number' },
    { id: 'descr', name: 'Description' }
]);
于 2013-11-08T05:21:46.483 に答える
0

使用する:

function validate()

{   
    var product_name  = document.getElementById('pname').value;
    var p_number      = document.getElementById('pnumber').value;
    var description   = document.getElementById('descr').value;

    if((product_name.trim()).length == 0)
         {alert("Please fill Product Name");   return false;}
    else if((p_number.trim()).length == 0)
         {alert("Please fill product Number"); return false;}
    else if((description.trim()).length == 0)
         {alert("Please fill description");    return false;}
    else
         return true;

}
于 2013-11-08T05:15:48.273 に答える
0

ここでこれを試してください:

function validate()
{   
    var d = document;
    var byId = function( id ) { return d.getElementById( id ); };

    var product_name  = byId('pname').value;
    var p_number      = byId('pnumber').value;
    var description   = byId('descr').value;

    if(product_name=="")
         {alert("Please fill Product Name");   return false;}
    else if(p_number=="")
         {alert("Please fill product Number"); return false;}
    else if(description=="")
         {alert("Please fill description");    return false;}
    else
         return true;

}
于 2013-11-08T05:17:32.970 に答える
0

トリム関数は、文字列の両側から空白を削除します。フィールド内の空白を検証するために使用されます。

だから、このフォーマットを使ってみてください

if(product_name.trim().length == 0)

于 2013-11-08T05:25:13.637 に答える