我遇到了这个函数的问题,第一部分被称为罚款,但在第一个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;
}
}
}
}
答案 0 :(得分:0)
如果strQtype
只能是您正在测试的3个值中的一个,那么您无法访问代码的第二部分,因为您总是从每个if
返回声明。
编辑:
return
时,您需要做的是不 fail == ""
。由于您刚刚返回true
,我假设您不需要返回值,只需验证验证是否成功。你应该做的只是测试失败,例如if (! fail=="" )
(语法错误,javascript不是我的第一个语言。)在这种情况下执行alert
。
或者您可以随时只编写3个不同的功能,一个用于测试每个菜单项,这是我可能会做的。