簡體   English   中英

在第二次出現時顯示警報

[英]Showing alert on second occurrence

我在下拉選擇中調用了以下javascript函數。 基本上我的要求是,可能有很多vndrCd。 但是,當vndrCd第一次為“ SFGL”時,警報不應打開。 如果“ SFGL第二次到來,則應該發出警報。我無法設置這種條件,因為每次單擊該方法時都會調用該方法。有什么辦法可以實現。

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");
    }

}

您可以使用閉包來保存私有變量,以指示是否遇到了'SFGL'

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)

嘗試做這樣的事情作為一個簡單的解決方案:

(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;
            }

        }
}());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM