return false在javascript

时间:2017-02-17 08:42:13

标签: javascript

我有简单的javascript函数,它们根据一些数据执行一个简单的字符串。我使用的Javascript函数是

function checkdata() {
    var data = document.getElementById('data').value;
    if (data != '') {
        console.log("Hello");
        return false;
    } else {
        return true;
    }
}

function gotothen() {
    console.log("Bye");
}

function changemode(value) {
    if (value == 0) {
        checkdata();
        gotothen();
    }
    if (value == 1) {
        checkdata();
        gotothen();
    }
}

我正在使用的html代码是

<input type="text" name="data" id="data">
<a href="javacript:void(0)" onclick="changemode(0)">Hotel</a>
<a href="javacript:void(1)" onclick="changemode(1)">Flight</a>

所以如果我在文本框中输入任何值并单击任何超链接,它会调用changemode()函数。我在changemode()函数中调用了两个函数。一个是checkdata(),另一个是gotothen()。因此,如果文本框值不为空,则它不应调用gotothen()函数,而是调用它。它应该在打印后停止&#34;你好&#34;但是在使用return false之后它也正在调用gotothen()函数。那么如果文本框值不为空,我怎么能停止执行gotothen()函数?

3 个答案:

答案 0 :(得分:3)

看起来您的代码正在返回false但实际上没有使用它。

你需要一个像

这样的逻辑
if(checkdata()){
  gotothen();
} 

你可以将它放在你的changemode块的外面,如下所示:

function changemode(value) {
    if( checkdata()){
        if(value == 0) {
            gotothen();
        }
        if(value == 1) {
            gotothen();
        }
    }
}

答案 1 :(得分:2)

无论如何,你都在呼叫gotothen()。 checkdata()的结果不会改变任何东西。你没有在changemode()函数中使用它,changemode函数应该最终返回true或false。

您应该更改代码,以便checkdata()的结果是调用gotothen()的条件。它应该是:

if (checkdata())
    gotothen();
// ... further execution

答案 2 :(得分:1)

因为函数checkdata有返回值,你应该捕获它以决定是否调用gotothen。

var check = checkdata();

if (check != false) {
    gotothen();
}

或简化为:

if (checkdata() != false) gotothen();

我们可以再次简化:

if (true_value != false) ...

使用:

if (true_value) ...