脚本运行不正确的功能

时间:2014-11-12 19:00:56

标签: javascript jquery alert

查看以下HTML和JS:

HTML:

<button onclick="alertFunction()">Choose Option Modal (Button 1)</button>

<button onclick="alertFunction2()">Veloce Modal (Button 2)</button>

JS:

function alertFunction() {
    alert("Please choose relevant options before adding to cart.");
}

function alertFunction2() {
  alert("item(s) added to your cart");
}


$(function() {

(function() {
    window.alert = function(text) {
        if (text.indexOf("Please choose relevant options before")) {
            console.log('Choose an Option Modal Open (Button 1)');
        } else if (text.indexOf("item(s) added to your cart")) {
            console.log('Veloce Modal Open (Button 2)');
        } 
    };
})();  

});

在上面的脚本中,如果单击按钮(1或2),将触发警报。接下来,JS发出警报文本,我们检查警报的文本。如果文本包含某些单词,则运行一个函数,在这种情况下只运行console.log

我遇到的问题是,当我点击按钮1时,显示按钮2的console.log。如果单击按钮2,则会出现相同的情况,显示按钮1的console.log

我有什么问题?如何解决问题?

Here is a JSFiddle以及该问题的工作示例。

1 个答案:

答案 0 :(得分:3)

indexOf()返回找到子字符串的第一个索引。在您的情况下,当文本匹配时,将返回0,评估为false。其他任何内容,包括-1(意思是未找到),评估为true

检查返回值:

if (text.indexOf("Please choose relevant options before") > -1) {
        console.log('Choose an Option Modal Open (Button 1)');
    } else if (text.indexOf("item(s) added to your cart") > -1) {
        console.log('Veloce Modal Open (Button 2)');
    }

http://jsfiddle.net/fd7yn78u/