2016-10-28 10 views
0

私は文字列に最初の3文字を追加し、それらを最後の2文字と比較して一致することを確認する必要があるコードを作成しています。値の入力から文字列の特定の部分を追加する

例えば:私はについて(バック2012年)、ここで以前のトピックを見つけた1 + 2 + 3 = 6、および0 + 6 = 6

としてID 12306が、有効です同様の問題、しかし、コード例では2つの静的な数値変数を使用し、私はHTMLの入力値を使用して同じメソッドを実装しようとしたとき、何もしないようです。

var custId = document.getElementById("custid").value; 

function validateId(custid) { 
    var custId2 = custId; 
    var custId3 = custId; 

    custId2 = custId2.substring(0, 2); 
    custId3 = custId3.substring(3, 5); 

    custid = custid.split(''); 
    var sum = 0; 

    for (var i = 0; i < custid.length; i++) { 
    sum += parseInt(custid[i], 10); 
    } 

    return sum; 

    if (add(custId2) != add(custId3)) { 
    output = "ID error. The first three digits must sum to the value ' + 
      'of digits 4 and 5. e.g. 12306 is a valid value"; 
    output = custId2 + "<br />" + custId3; 
    addToOutput(); 
    return false; 
    } 
} 
+0

あなたは 'custid'と' custId'を混同。それは理由である可能性があります – FlatLander

+0

そして、まさに問題は何ですか?その間に 'return'ステートメントがあり、' custid'を完全にループしています。したがって、正確な問題を指定してください。 – Rajesh

+1

関数の途中にreturn文があります。関数には閉じ括弧がありません。コードでは、関数の呼び出し方法や入力要素への接続方法は表示されません。あなたは "追加"機能が何であるかを示していません。あなたの 'custid'対' custId'ケーシングは矛盾しています – chiliNUT

答えて

1

コメント(間違ったケーシング、複数の戻り、サブインデックス)に記載されているようにあなたの方法は、多くの課題がありますが、私はあなたの好みに合わせて使用​​することができるソリューションを提供しています。

var validateId = function(custId) { 
    var custId2 = custId.substring(0, 3).split(''); 
    var custId3 = custId.substring(3,5).split(''); 

    var sum2 = 0; 
    var sum3 = 0; 

    custId2.forEach((e) => { 
    sum2 += parseInt(e); 
    }) 

    custId3.forEach((e) => { 
    sum3 += parseInt(e); 
    }) 

    if(sum2 !== sum3) { 
    console.log("ID error. The first three digits must sum to the value of digits 4 and 5. e.g. 12306 is a valid value") 
    } else { 
    console.log("Success"); 
    } 
} 

validateId("12306"); 

例 - http://plnkr.co/edit/vtrU8Hs4Bv6FJS1qFnKn?p=preview

0

だから私は、それが次のコードでの作業を取得するために管理:

function processData(){ 
    var custId = document.getElementById("custid").value; 
    var custName = document.getElementById("custname").value; 
    var ticketType = document.getElementById("tickettype").value; 
    var ticketQty = document.getElementById("qty").value; 
    var delType = document.getElementById("delivtype").value; 
    validateId(custId); 

function validateId(custId){ 
    if(!custId){ 
     output = "Customer ID cannot be blank"; 
     addToOutput(); 
     return false;} 

    if(custId.length != 5){ 
     output = "Customer ID must be 5 digits in length"; 
     addToOutput(); 
     return false;} 

    if(isNaN(custId)){ 
     output = "Customer ID must be numeric"; 
     addToOutput(); 
     return false;} 

    var custId2 = custId; 
    var custId3 = custId; 

    custId2 = custId.substring(0,3); 
    custId3 = custId.substring(3,5); 

    custId = custId.split(''); 
    var sum = 0; 
    var sum2 = 0; 

    for (var i = 0; i < custId2.length; i++){ 
     sum += parseInt(custId2[i],10); 
    } 

    for (var i2 = 0; i2 < custId3.length; i2++){ 
     sum2 += parseInt(custId3[i2],10); 
    } 

    if(sum !== sum2){ 
     output = "ID error. The first three digits must sum to the value of digits 4 and 5. e.g. 12306 is a valid value"; 
     addToOutput(); 
     return false;} 

    output = "Customer ID Valid!" 
    addToOutput(); 
    return true; 
} 
関連する問題