jQuery中的验证函数不工作
我正在使用以下HTML代码显示一个表:jQuery中的验证函数不工作,jquery,html,Jquery,Html,我正在使用以下HTML代码显示一个表: <table border="1" id="markstbl"> <thead> <tr> <th class="answermarksth">Marks per Answer</th> <th class="totalmarksth">Total Marks</th> <th class="no
<table border="1" id="markstbl">
<thead>
<tr>
<th class="answermarksth">Marks per Answer</th>
<th class="totalmarksth">Total Marks</th>
<th class="noofmarksth">Marks Remaining</th>
</tr>
</thead>
<tbody>
<tr class="questiontd">
<td class="answermarkstd">
<input class="individualMarks q1_mark_0" q_group="1" name="answerMarks[]" id="individualtext" type="text" />
</td>
<td class="totalmarkstd" rowspan="2">4</td>
<td class="noofmarkstd q1_ans_text" q_group="1" rowspan="2"><strong>4</strong></td>
</tr>
<tr class="questiontd">
<td class="answermarkstd">
<input class="individualMarks q2_mark_0" q_group="1" name="answerMarks[]" id="individualtext" type="text" />
</td>
<td class="totalmarkstd" rowspan="1">6</td>
<td class="noofmarkstd q2_ans_text" q_group="1" rowspan="1"><strong>0</strong></td>
</tr>
</tbody>
</table>
我已尝试验证该表,以便在文本输入为空时,它会显示一条消息。如果“剩余标记”不等于0,则会显示一条验证消息(如果大于0,则显示一条验证消息;如果小于0,则显示另一条验证消息)
问题是它没有输出任何验证消息。为什么它不执行任何验证
这是我的jQuery代码:
function validation() {
var alertValidation = "";
var _qid = "";
var _msg = "";
var questions = $('#markstbl td[class*="_ans"]').length;
$("[class*='q'").each(function (i) {
var marks = parseInt($("[class*=q" + i + "_mark]").text());
_qid = $(".q" + i + "_ans_org").text();
_msg = "You have errors on Question Number: " + _qid + "\n";
if (!this.value) {
alertValidation += "\n\u2022 You have not entered in a value in the Indivdiaul Marks textbox all your Answers\n";
}
if ($("[class*=q" + i + "_mark]").text() < '0') {
alertValidation = "Your Total Marks Remaining does not equal 0 \n\n\u2022 You Need To Remove " + Math.abs(marks) + " Marks";
} else if ($("[class*=q" + i + "_mark]").text() > '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;
}
函数验证(){
var alertValidation=“”;
var_qid=“”;
var_msg=“”;
变量问题=$(“#markstbl td[class*=”#ans“])。长度;
$(“[class*='q')。每个(函数(i){
var marks=parseInt($(“[class*=q”+i+“\u mark]”)。text();
_qid=$(“.q”+i+”\u ans\u org”).text();
_msg=“您在问题编号上有错误:”+\u qid+“\n”;
如果(!this.value){
alertValidation+=“\n\u2022您尚未在Indivdiaul Marks文本框中输入所有答案的值\n”;
}
如果($(“[class*=q”+i+“\u标记]”).text()<“0”){
alertValidation=“您剩余的总分不等于0\n\n\u2022您需要删除“+Math.abs(分数)+”分数”;
}else if($(“[class*=q”+i+“\u标记]”).text()>“0”){
alertValidation=“您的总剩余分数不等于0\n\n\u2022您有“+分数+”剩余分数”;
}
如果(alertValidation!=“”){
返回false;//停止每个循环
}
});
如果(alertValidation!=“”){
警报(_msg+alertValidation);
返回false;
}
返回true;
}
您的jQuery代码中确实有一个错误。此选择器$(“[class*='q'”)
无效。它必须是这样的:$(“[class*='q']”)
下面是一个代码正在运行的JSFIDLE:
我还在读这个问题,想知道验证应该如何工作。Ugh,indentation!这里:@elclars我已经美化了jquery代码,我已经清理了JavaScript上的缩进。你希望这个验证代码什么时候运行?这很酷,需要进行验证,但你已经管理了获取验证时出现的警报,谢谢
function validation() {
var alertValidation = "";
var _qid = "";
var _msg = "";
var questions = $('#markstbl td[class*="_ans"]').length;
$("[class*='q'").each(function (i) {
var marks = parseInt($("[class*=q" + i + "_mark]").text());
_qid = $(".q" + i + "_ans_org").text();
_msg = "You have errors on Question Number: " + _qid + "\n";
if (!this.value) {
alertValidation += "\n\u2022 You have not entered in a value in the Indivdiaul Marks textbox all your Answers\n";
}
if ($("[class*=q" + i + "_mark]").text() < '0') {
alertValidation = "Your Total Marks Remaining does not equal 0 \n\n\u2022 You Need To Remove " + Math.abs(marks) + " Marks";
} else if ($("[class*=q" + i + "_mark]").text() > '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;
}