2016-03-27 5 views
0

現在、フィールド内の文字列の長さに基づいてフォームフィールドを認証するプロジェクトを行っています。たとえば、zipフィールドは少なくとも5文字である必要があります。これはこれまでのコードです。jQueryフォームと.lengthの使い方が分からない

$(document).ready(function() { 
//Building the Address from the Form 
var address = document.getElementById("address"); 
var city = document.getElementById("city"); 
var state = document.getElementById("state"); 
var zip = document.getElementById("zip"); 

var addressobject = buildAddress(address.value, city.value, state.value, zip.value); 

function buildAddress(address, city, state, zip){ 
    addressobject = { 
     address: address, 
     city: city, 
     state: state, 
     zip: zip, 
     toString: function(){ 
      return (this.address + "," + this.city + "," + this.state + "," + this.zip); 
     } 
    } 
    return(addressobject); 
} 
//Validation Function 
$("#btn").on("click", function(addressobject) { 
    if(address.zip < 5){ 
    alert("good"); 
    } else 
    alert("bad"); 
}); 

});

このプロジェクトには他の部分もありますが、今はこの認証部分を動作させるだけです。再び、私はzipフィールドの入力が "悪い"という警告ボックスを生成する代わりに、(address.zip < 5)を働かせることができません。上記のdocument.getElementByIdは、HTMLページからdiv入力IDを参照しています。代わりに別のものを参照するべきでしょうか?

答えて

0

テキスト入力はすべて文字列であり、数値として評価することはできません。 parseInt(またはparseFloat)を使用して数字に変換し、それを検証する最小のNUMBERである5桁の数字と比較するか、入力された文字列の長さをテキスト入力から取得して比較します.lengthプロパティを使用して5文字必要です。

+0

数字を整数として認識する必要はありません。それを認識して長さを知る必要があります。 – Jwalker

+1

.length()はあなたの友人です!ちなみに、より流動的なUIを作るには、なぜzipフィールドのぼかしでvalidate length関数を呼び出さないのですか?またはkeyupイベントであっても。これにより、ユーザーはフォームの最後まで移動してから、以前に入力したフィールドに戻る必要があることに気づくでしょう。 – gavgrif

+0

これは私が以前から考えていたものですが、今はこれがもっと複​​雑であることが証明されています。 .length()を追加すると、表示されていた警告ボックスだけが削除されます。 – Jwalker

関連する問題