如何在jquery中正确validation空文本输入

这是我validationhtml表的jQuery代码:

function validation() { var alertValidation = ""; var _qid = ""; var _msg = ""; $("[class*='q']").each(function (i) { var questions = parseInt($("[class*=q" + i + "_qnum]").text()); var marks = parseInt($("[class*=q" + i + "_ans_text]").text()); var txtinput = $("[class*=q" + i + "_mark]").val(); _qid = questions; _msg = "You have errors on Question Number: " + _qid + "\n"; if (txtinput == '' || txtinput == null) { alertValidation += "\n\u2022 You have not entered in a value for all the Indivdiaul Marks textbox\n"; } else if (marks  '0') { alertValidation = "Your Total Marks Remaining does not equal 0 \n\n\u2022 You Have " + marks + " Marks Remaining"; } if (alertValidation != "") { return false; //Stop the each loop } }); if (alertValidation != "") { alert(_msg + alertValidation); return false; } return true; } 

现在我觉得奇怪的是,如果剩余标记数量的validation高于0并且当标记剩余数量低于0时的validation在输出警报时完美地起作用,因为它显示如下:

高于0:

 You have errors on Question Number: 1 Your Total Marks Remaining does not equal 0 • You Have 7 Marks Remaining 

小于0:

 You have errors on Question Number: 1 Your Total Marks Remaining does not equal 0 • You Need To Remove 3 Marks 

但是当我尝试validation“每个答案的标记”部分下的文本输入是否为空时,它会在下面显示以下消息:

 You have errors on Question Number: NaN • You have not entered in a value for all the Indivdiaul Marks textbox 

为什么不能显示此validation的问题编号?

另外一个小问题是,即使我在“每个答案的标记”下的所有文本输入中输入了一个值,它仍然会显示上面的validation消息警告。 为什么这样做呢?

下面是一个示例html表:

  <td class="questionnumtd q_qnum" name="numQuestion" rowspan="1">1 
Question No. Marks per Answer Marks Remaining
5

您可以使用length来检查属性是否有空文本而不是!=“”

 alertValidation.length > 0 

你可以检查下面的代码吗?

 parseInt($("[class*=q" + i + "_qnum]").text()); 

如果这个$(“[class * = q”+ i +“_ qnum]”)。text()未定义,那么parseInt将只返回NaN

谢谢

尝试使用alert($(“[class * = q”+ i +“_ qnum]”)。text());

或使用谷歌浏览器或萤火虫调试,

我相信each()捕获你的web中不存在的类,或者它包含无法解析为Int的字符,空间,这会在脚本中导致NaN,尝试检查它