【发布时间】:2013-02-21 13:43:39
【问题描述】:
我创建的这个函数有问题,第一部分调用正常,但在第一个 if 语句之后没有调用其他任何内容。我用过 JSfiddle,但它并没有发现严重的问题。
我通常使用 PHP 而不是 JS,所以我想知道这里是否缺少一些简单的东西?
function validatequestion(form){
var e = document.getElementById("chooseqtype");
var strQtype = e.options[e.selectedIndex].value;
if(strQtype == "default"){
alert("Please select a question type");
return false;
}
if(strQtype == "textquestion"){
fail = validatetextq(form.textquestiondesc.value)
if(fail == "") return true
else {
alert(fail);
return false;
}
}
if(strQtype == "videoquestion"){
fail = validatevideoq(form.videoquestiondesc.value)
if(fail == "") return true;
else {
alert(fail);
return false;
}
}
//everything above works, after this point nothing seems to get called
var a = document.getElementById("chooseatype");
var strAtype = a.options[a.selectedIndex].value;
if(strAtype == "textanswer"){
//get the value of the number of text answers select box
var t = document.getElementById("choosetextnumber");
//put the value in variable strQtype
var strTextno = t.options[t.selectedIndex].value;
if(strTextno == "2tanswers"){
fail = validatetexta1(form.textanswer1.value)
fail += validatetexta2(form.textanswer2.value)
if(fail == "") return true;
else {
alert(fail);
return false;
}
}
}
}
【问题讨论】:
-
如果你从第一个返回 false ......
-
NITPICK:使用 else if!
-
你实际上想用这段代码实现什么?
-
你的意思是它执行前三个代码块之一,然后停止?如果是这样的话,那是因为你在他们每个人中都返回了 false。
-
我正在尝试验证一些文本字段,但我使用 3 个选择菜单,因此并非所有字段都需要验证。例如,如果选择了文本问题,则会显示用于创建文本问题的文本字段。
标签: javascript if-statement syntax