Javascript 无法读取数组的属性
我有一个非常复杂的页面,它使用动态信息生成一个包含正确和相关信息的布局 我将数据存储为一个对象。我基本上有15个对象,其中包含用户提交数据的多个字段 所有内容都正确地存储和输出在页面上,但是现在,当用户试图从编辑页面编辑信息时,我尝试验证和输出信息。这些信息都是正确生成和布局的,但是我在验证这些信息时不断遇到同样的错误 验证应通过并确定字段是否正确填写,以及是否未记录变量并将其添加到警报变量。一旦我运行完验证函数,它就会弹出一个警报,提示哪些字段仍然需要填写 当它通过for循环向底部运行时,我一直收到一个错误。它表示“UncaughtTypeError”无法读取未定义的属性“questionNumber” 在下面的代码上面,我存储了对象和属性,但是这个函数是所有事情都出错的地方。请注意,qtest对象中还有15个数组,但为了简化起见,我删除了所有数组,只有少数数组除外 我已经将其用于更小、更简单的表单,但是由于复杂性和存储方法,我认为这可能缺少一些内容,或者我可能无法正确访问某些内容。代码很长,而且在下面,我已经尽可能地缩减了。如果您有任何见解或帮助,我将不胜感激。谢谢大家!Javascript 无法读取数组的属性,javascript,jquery,arrays,oop,dynamic,Javascript,Jquery,Arrays,Oop,Dynamic,我有一个非常复杂的页面,它使用动态信息生成一个包含正确和相关信息的布局 我将数据存储为一个对象。我基本上有15个对象,其中包含用户提交数据的多个字段 所有内容都正确地存储和输出在页面上,但是现在,当用户试图从编辑页面编辑信息时,我尝试验证和输出信息。这些信息都是正确生成和布局的,但是我在验证这些信息时不断遇到同样的错误 验证应通过并确定字段是否正确填写,以及是否未记录变量并将其添加到警报变量。一旦我运行完验证函数,它就会弹出一个警报,提示哪些字段仍然需要填写 当它通过for循环向底部运行时,我一
var validateQ = function(qTextID, qAnswerType, TFID, MCID, MCText1, MCText2, MCText3, MCText4, VisRef, Youtube, Vimeo, ImgID) {
if (document.getElementById('ItemName').value == "") {
var quizName = true;
};
if (jQuery('select[name="CAT_Custom_14"]').val() == 'Quiz') {
if (jQuery(qTextID).val() == "") {
var qText = true;
};
if (jQuery('CAT_Custom_249').val() == " ") {
var quizscore1 = true;
};
if (jQuery(qAnswerType).val() == " ") {
var answertype = true;
} else if (jQuery(qAnswerType).val() == 'True/False') {
if (!jQuery(TFID).is(':checked')) {
var tfanswer = true;
var mcanswer = false;
};
} else if (jQuery(qAnswerType).val() == 'Multiple Choice') {
if (!jQuery(MCID).is(':checked')) {
var mcanswer = true;
var tfanswer = false;
};
if (jQuery(MCText1).val() == "" || jQuery(MCText2).val() == "" || jQuery(MCText3).val() == "" || jQuery(MCText4).val() == "") {
var mcTextfields = true;
} else {
mcTextfields = false;
};
};
} else if (jQuery('select[name="CAT_Custom_14"]').val() == 'Survey') {
if (jQuery(qTextID).val() == "") {
var qText = true;
};
if (!jQuery(sAnswers1).is(':checked')) {
var surveyAnswers1 = true;
} else {
surveyAnswers1 = false;
};
};
if (jQuery(VisRef).val() != " ") {
if (jQuery(VisRef).val() == "Youtube Video" && jQuery(Youtube).val() == "") {
var youtubeVal = true;
} else if (jQuery(VisRef).val() == "Vimeo Video" && jQuery(Vimeo).val() == "") {
var vimeoVal = true;
} else {
// validateImage(ImgID);
};
} else {
youtubeVal = false;
vimeoVal = false;
var tempImgCheck = false;
};
if (numCheck == 15) {
numCheck = 16;
};
var qName = "- Quiz or Survey Name\n";
var shortDescription = "- A short description of the Quiz/Survey\n";
var scoreMessage = "- A required passing score\n";
var QTextMessage = "- Question text\n";
var answerTMessage = "- An answer type\n";
var mcFields = "- The Multiple Choice answer fields\n";
var mcMessage = "- The correct Multiple Choice Answer\n"
var tfMessage = "- The correct True/False answer\n";
var vimMessage = "- A Vimeo Video code\n";
var ytMessage = "- A Youtube Video code\n";
var imgMessage = "- A reference image\n";
var surveyMessage = "- An answer type\n";
if (quizName == true || quizscore1 == true || qText == true || answertype == true || tfanswer == true || mcanswer == true || mcTextfields == true || youtubeVal == true || vimeoVal == true || tempImgCheck == true || surveyAnswers1 == true) {
var alertText = "It appears that you have not finished completing question" + question[i].questionNumber + ". Please ensure that you have completed the following question fields.\n";
if (quizName == true) {
alertText = alertText + qName;
};
if (quizscore1 == true) {
alertText = alertText + scoreMessage;
};
if (qText == true) {
alertText = alertText + QTextMessage;
};
if (answertype == true) {
alertText = alertText + answerTMessage;
};
if (tfanswer == true) {
alertText = alertText + tfMessage;
};
if (mcanswer == true) {
alertText = alertText + mcMessage;
};
if (mcTextfields == true) {
alertText = alertText + mcFields;
};
if (youtubeVal == true) {
alertText = alertText + ytMessage;
};
if (vimeoVal == true) {
alertText = alertText + vimMessage;
};
if (tempImgCheck == true) {
alertText = alertText + imgMessage;
};
if (surveyAnswers1 == true) {
alertText = alertText + surveyMessage;
};
if (quizscore1 == true) {
alertText = alertText + scoreMessage;
};
confirm(alertText);
};
};
var numCheck = 1;
var checkQuizQ = function() {
for (j = 1; j<= qtest.length; j++) {
numCheck = numCheck + 1;
if (qtest[j].questionNumber == "1") {
validateQ("CAT_Custom_3", "CAT_Custom_8", "CAT_Custom_19", "CAT_Custom_18", "CAT_Custom_4", "CAT_Custom_5", "CAT_Custom_6", "CAT_Custom_7", "CAT_Custom_9", "CAT_Custom_10", "CAT_Custom_11", "CAT_Custom_12", "CAT_Custom_230");
} else if (qtest[j].questionNumber == "2") {
validateQ("CAT_Custom_20", "CAT_Custom_21", "CAT_Custom_29", "CAT_Custom_26", "CAT_Custom_22", "CAT_Custom_23", "CAT_Custom_24", "CAT_Custom_25", "CAT_Custom_30", "CAT_Custom_31", "CAT_Custom_32", "CAT_Custom_33", "CAT_Custom_231");
} else if (qtest[j].questionNumber == "3") {
validateQ("CAT_Custom_35", "CAT_Custom_36", "CAT_Custom_37", "CAT_Custom_40", "CAT_Custom_41", "CAT_Custom_42", "CAT_Custom_43", "CAT_Custom_44", "CAT_Custom_45", "CAT_Custom_46", "CAT_Custom_47", "CAT_Custom_48", "CAT_Custom_232");
} else if (qtest[j].questionNumber == "4") {
};
};
document.getElementById('catcustomcontentbutton').style.display = "block";
document.getElementById("qsValidate").style.display = "none";
};
var validateQ=function(qTextID、qAnswerType、TFID、MCID、MCText1、MCText2、MCText3、MCText4、VisRef、Youtube、Vimeo、ImgID){
if(document.getElementById('ItemName')。值==“”){
var quizName=true;
};
if(jQuery('select[name=“CAT_Custom_14”]”)。val()=“quick”){
if(jQuery(qTextID).val()==“”){
var qText=true;
};
if(jQuery('CAT_Custom_249').val()=“”){
var quizscore1=真;
};
if(jQuery(qAnswerType).val()==“”){
var answertype=真;
}else if(jQuery(qAnswerType).val()=='True/False'){
如果(!jQuery(TFID).is(':checked')){
var-tfanswer=true;
var mcanswer=假;
};
}else if(jQuery(qAnswerType).val()==“多项选择”){
如果(!jQuery(MCID).is(':checked')){
var mcanswer=真;
var-tfanswer=false;
};
if(jQuery(MCText1).val()=“”| | jQuery(MCText2).val()=“”| | jQuery(MCText3.val()=“”| | jQuery(MCText4.val()=“”){
var mcTextfields=true;
}否则{
mcTextfields=false;
};
};
}else if(jQuery('select[name=“CAT_Custom_14”]”)。val()=“Survey”){
if(jQuery(qTextID).val()==“”){
var qText=true;
};
如果(!jQuery(sAnswers1).is(':checked')){
var surveyAnswers1=真;
}否则{
surveyAnswers1=假;
};
};
if(jQuery(VisRef.val()!=“”){
if(jQuery(VisRef.val()=“Youtube视频”&&jQuery(Youtube.val()==”){
var youtubeVal=true;
}else if(jQuery(VisRef.val()=“Vimeo视频”&&jQuery(Vimeo.val()=”){
var vimeoVal=真;
}否则{
//验证图像(ImgID);
};
}否则{
youtubeVal=false;
vimeoVal=false;
var tempImgCheck=false;
};
如果(numCheck==15){
numCheck=16;
};
var qName=“-测验或调查名称\n”;
var shortDescription=“-测验/调查的简短描述\n”;
var scoreMessage=“-要求的及格分数\n”;
var QTextMessage=“-Question text\n”;
var answerTMessage=“-答案类型\n”;
var mcFields=“-多选答案字段\n”;
var mcMessage=“-正确的多选答案\n”
var tfMessage=“-正确的真/假答案\n”;
var vimMessage=“-A Vimeo视频代码\n”;
var ytMessage=“-A Youtube视频代码\n”;
var imgMessage=“-A reference image\n”;
var surveyMessage=“-答案类型\n”;
如果(quizName==true | | | | quizcore1==true | | qText==true | | answertype==true | | mcanswer==true | | mcTextfields==true | | youtubeVal==true | | | eoval==true | | tempImgCheck==true | | | surveyAnswers1==true){
var alertText=“您似乎还没有完成问题“+问题[i]。问题编号+”。请确保您已完成以下问题字段。\n”;
if(quizName==true){
alertText=alertText+qName;
};
if(quizscore1==true){
alertText=alertText+scoreMessage;
};
如果(qText==true){
alertText=alertText+QTextMessage;
};
if(answertype==true){
alertText=alertText+answerTMessage;
};
if(tfanswer==true){
alertText=alertText+tfMessage;
};
如果(mcanswer==true){
alertText=alertText+mcMessage;
};
如果(mcTextfields==true){
alertText=alertText+mcFields;
};
if(youtubeVal==true){
alertText=alertText+ytMessage;
};
如果(vimeoVal==true){
alertText=alertText+vimMessage;
};
if(tempImgCheck==true){
alertText=alertText+imgMessage;
};
如果(surveyAnswers1==真){
alertText=alertText+调查信息;
};
if(quizscore1==true){
alertText=alertText+scoreMessage;
};
for (j = 0; j< qtest.length; j++) {
//
}