Jquery 警报未按我希望的方式工作
在此情况下,请按照以下步骤操作: 1:当你打开小提琴时,点击“添加问题”按钮两次,这将在下面添加2行 2:点击“提交详细信息”按钮,会出现以下错误: 你在问题编号上有错误:2 您没有输入有效的问题 请输入此问题所需的答案数 请输入此问题的分数数字 您没有输入有效的问题 请输入此问题所需的答案数 请输入此问题的分数数字 这是不正确的,上面的警报显示所有错误和错误的问题编号。如果多行中存在错误,则应显示包含错误的第一行的编号,并在警报中显示这些错误。警报应显示以下内容: 您在问题编号1上有错误 您没有输入有效的问题 请输入此问题所需的答案数 请输入此问题的分数数字 另一个问题是,如果在第二行中填写文本区域和文本框,则会在下面显示此警报: 你在问题编号上有错误:2 您没有输入有效的问题 请输入此问题所需的答案数 请输入此问题的分数数字 上述警报不正确,因为它指出错误所在的问题编号错误。问题编号应该是1号,而不是2号。那么,如何解决这个问题呢 下面是控制警报的validation()函数的代码:Jquery 警报未按我希望的方式工作,jquery,Jquery,在此情况下,请按照以下步骤操作: 1:当你打开小提琴时,点击“添加问题”按钮两次,这将在下面添加2行 2:点击“提交详细信息”按钮,会出现以下错误: 你在问题编号上有错误:2 您没有输入有效的问题 请输入此问题所需的答案数 请输入此问题的分数数字 您没有输入有效的问题 请输入此问题所需的答案数 请输入此问题的分数数字 这是不正确的,上面的警报显示所有错误和错误的问题编号。如果多行中存在错误,则应显示包含错误的第一行的编号,并在警报中显示这些错误。警报应显示以下内容: 您在问题编号1上有错误 您没
function validation() {
var _qid = "";
var _msg = "";
alertValidation = "";
// Note, this is just so it's declared...
$("tr.optionAndAnswer").each(function() {
_qid = $("td.qid",this).text();
_msg = "You have errors on Question Number: " + _qid + "\n";
$(".textAreaQuestion",this).each(function() {
if (!this.value || this.value.length < 5) {
alertValidation += "\nYou have not entered a valid Question\n";
}
if (alertValidation != "") {
return false; //Stop the each loop
}
});
$(".numberAnswerTxtRow",this).each(function() {
var currenttotal = $(this).closest('.optionAndAnswer').find('.answerBtnsOn').length;
if (!this.value) {
alertValidation += "\nPlease Enter in the Number of Answers you Require for this question\n";
}
if (alertValidation != "") {
return false; //Stop the each loop
}
});
$(".txtWeightRow",this).each(function() {
if (!this.value) {
alertValidation += "\nPlease enter in a figure for Number of Marks for this Question\n";
}
if (alertValidation != "") {
return false; //Stop the each loop
}
});
});
if (alertValidation != "") {
alert(_msg + alertValidation);
return false;
}
return true;
}
函数验证(){
var_qid=“”;
var_msg=“”;
alertValidation=“”;
//请注意,这只是它的声明。。。
$(“tr.optionandswer”)。每个(函数(){
_qid=$(“td.qid”,this.text();
_msg=“您在问题编号上有错误:”+\u qid+“\n”;
$(“.textAreaQuestion”,this).each(函数(){
如果(!this.value | | this.value.length<5){
alertValidation+=“\n您没有输入有效的问题\n”;
}
如果(alertValidation!=“”){
返回false;//停止每个循环
}
});
$(“.numberTranswerTXtrow”,this).each(函数(){
var currenttotal=$(this).closest('.optionandswer').find('.answerBtnsOn').length;
如果(!this.value){
alertValidation+=“\n请输入此问题所需的答案数\n”;
}
如果(alertValidation!=“”){
返回false;//停止每个循环
}
});
$(“.txtWeightRow”,this).each(函数(){
如果(!this.value){
alertValidation+=“\n请输入此问题的分数数字\n”;
}
如果(alertValidation!=“”){
返回false;//停止每个循环
}
});
});
如果(alertValidation!=“”){
警报(_msg+alertValidation);
返回false;
}
返回true;
}
我认为您必须退出。$(“tr.optionandswer”)
中的每个,以防alertValidation
有内容(您可以将if(alertValidation!=“”)替换为if(alertValidation)
)
查看您必须检查外部循环($(“tr.optionandswer”).each()
)中是否已发现任何错误,并通过返回false来停止它
在外部每个循环中添加此项,并将alertValidation
声明为var-alertValidation
,否则它将在全局范围内
if(alertValidation != ""){
return false;
}
我已经在你的提琴演示中修复了。看一看