我有简单的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()
函数?
答案 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) ...