2017-01-30 12 views
1

まだテキスト入力を検証しようとしているJavaScriptにはかなり新しいですが、私はそれを段階的に実行しようとしてきましたが、多くのことが起こっており、私は自分自身と矛盾しています。以下で必要な検証について説明しました。 、この入力を検証する最も簡単な方法は?

var a = document.getElementById("val1").value; 
var b = document.getElementById("val2").value; 

val1とつのテキスト入力フィールドを参照VAL2、Aおよび両方のBは正の整数でなければならないが、唯一つの入力フィールドは、その場合に、他の変数が値0与えられるべきである、満たされなければなりません次のループを実行するには、変数aが2つの値のうち小さい方で、bがラージアである必要があります。

for (var i = a; i < (Number(b) + Number(1)); i++) { 
    tableRow = resultsRows.appendChild(document.createElement("tr")); 
    if(i%2==0) { 
     tableRow.setAttribute("class", "even"); 
    } 
    else { 
     tableRow.setAttribute("class", "odd"); 
    } 
    var tableData = tableRow.appendChild(document.createElement("td")); 
    tableData.appendChild(document.createTextNode(i)); 
    tableData = tableRow.appendChild(document.createElement("td")); 
    tableData.appendChild(document.createTextNode(converter(i))); 
} 

機能これを検証するために書き込もうとしていました。これで空白入力を受け入れる方法がわからない...

function validateInput(x) { 
    if (isNaN(x) || x < 0) { 
     alert("Input incorrect; fields must be blank or contain positive integers"); 
     return false; 
    } 
    else { return true 
    } 
} 
+0

検証を実行するために使用しているコードを投稿してください。さまざまなバリデーションライブラリがあり、その答えはあなたがすでに持っているものに依存します。 –

+0

これらのうちの1つだけがゼロより大きいことが既にチェックされていますか?あるいは、その小切手にも対応できる方法を探していますか? –

答えて

1

添付のコードスニペットをお試しください。 以下の仮定を組み込むように設計されています

  • 数字の一つだけを入力する必要があります(つまり、両方のフィールドが同時に空白のままにすることができない、また両方一緒に値を含めることができます)それは正でなければなりません
  • ノー非数値の入力

function customValidation(){ 
 
    var a = document.getElementById("val1").value; 
 
    var b = document.getElementById("val2").value; 
 

 
    if((a == "" && b == "") 
 
     || (a > "" && !isNumber(a)) || (b > "" && !isNumber(b)) 
 
     || (a < 0 || b < 0) 
 
     || (a == 0 && b == 0) 
 
     || (a > 0 && b > 0)){ 
 
     alert("Input incorrect; " 
 
       + "only one of the fields must contain a value " 
 
       + "and that should be a positive number"); 
 
     return false; 
 
    } 
 
\t \t 
 
    if(a > 0){ 
 
     n = a; 
 
    } 
 
    else{ 
 
     n = b; 
 
    } 
 

 
    for(i=0; i < (Number(n) + Number(1)); i++){ 
 
     alert("Executing: "+i); 
 
     // 
 
     // 
 
    } 
 
} 
 

 
//----------------------------------------------------- 
 
function isNumber(n) { 
 
    return !isNaN(parseFloat(n)) && isFinite(n); 
 
} 
 
//-----------------------------------------------------
Val1: <input id="val1" type="text"><br> 
 
Val2: <input id="val2" type="text"><br> 
 

 
<input type="button" value="Test" onClick="customValidation()">

関連する問題