2016-07-14 2 views
0

私はドロップダウン選択で以下のjavascript関数を呼び出しました。 基本的に私の要件は、vndrCdがたくさんあることです。 しかし、初めてvndrCdが「SFGL」になったときには、警告が表示されません。 SFGLが二度目に来ている 」場合、アラートはすべてのクリックである私は、メソッドの呼び出しと、この条件を置くことができないのです。来る必要があります。私はこれをachiveできる方法はあります。2番目の発生時にアラートを表示

function GetOptions(var1) { 
    varId = var1.id; 

    var vndrNbrCdList = document.getElementById('TouchCellDetailForm:vendorNbrCodeList').value; 
    var splitVndrList = vndrNbrCdList.split(','); 

    if (var1.value == '0') { 
     varhiddBox.value = '0'; 
     return; 
    } 

    for (var j = 0; j < splitVndrList.length; j++) { 
     if (splitVndrList[j].split('-')[0] == (var1.value)) { 
      var vndrCd = splitVndrList[j].split('-')[1]; 
      break; 
     } 
    } 

    localStorage.setItem("vendorName", vndrCd); 
    var vendorName1 = localStorage.getItem("vendorName"); 
    if (vendorName1 == 'SFGL') { 
     alert("Salesforce vendor has already been selected.Please select some other vendor"); 
    } 

} 

答えて

0

をあなた簡単なソリューとして、このような何かをやってみ

function GetOptionsHelp() { 
    'use strict'; 

    let called = false; 

    return function GetOptions(var1) { 
     // ... your code block 
    if (vendorName1 == 'SFGL') { 
     if (called) { 
      alert("Salesforce vendor has already been selected.Please select some other vendor"); 
     } else { 
      called = true; 
     } 
    } 
} 

そして、あなたはこのGetOptionsHelp()(var1)

0

のような関数を呼び出すことができます。'SFGL'に遭遇されているか否かを示すために、プライベート変数を保持するためにクロージャを使用することができます:

(function() { 
     var firstTimeFlag = true; 

     function GetOptions(var1) { 
      varId = var1.id; 

      var vndrNbrCdList = document.getElementById('TouchCellDetailForm:vendorNbrCodeList').value; 
      var splitVndrList = vndrNbrCdList.split(','); 

      if (var1.value == '0') { 
       varhiddBox.value = '0'; 
       return; 
      } 

      for (var j = 0; j < splitVndrList.length; j++) { 
       if (splitVndrList[j].split('-')[0] == (var1.value)) { 
        var vndrCd = splitVndrList[j].split('-')[1]; 
        break; 
       } 
      } 

      localStorage.setItem("vendorName", vndrCd); 
      var vendorName1 = localStorage.getItem("vendorName"); 
      if (vendorName1 == 'SFGL') {      
       if(!firstTimeFlag) { 
        alert("Salesforce vendor has already been selected.Please select some other vendor");       
       } 
       firstTimeFlag = false; 
      } 

     } 
}()); 
+0

この関数を呼び出すにはどうすればよいですか? – themaster

+0

アプリケーションの開始時に自動的に呼び出されます。このタイプの関数は、IIFE(Immediately invoked関数式)として知られています。 –

関連する問題