第二次出现时显示警报

时间:2016-07-14 11:14:26

标签: javascript

我已经在下拉选项上调用了以下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");
    }

}

2 个答案:

答案 0 :(得分:0)

您可以使用闭包来保存私有变量,以指示是否遇到'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)

答案 1 :(得分:0)

尝试做这样的事情作为一个简单的解决方案:

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

        }
}());