Jquery 显示的警报不正确
我的申请有一个问题,那就是。请按照以下步骤操作: 打开应用程序时,单击open Grid并选择选项4。按钮A、B、C和D将出现在下面 在“答案数”文本框中,键入数字1。然后单击A、B、C或D中的1个按钮,所选按钮将变为绿色。完成后,单击添加问题按钮 如您所见,您在顶部输入的详细信息将显示在下面的新行中。在您添加的新行中,在“答案数”列下的文本框中,将数字1更改为2。现在单击下面的“提交详细信息”按钮 应出现一个警报,说明您选择的答案少于所需数量。这是正确的,因为在文本框中,您表示需要2个答案,但在“答案”列下,您只选择了1个答案按钮,该按钮已变为绿色 问题是,当您执行以下两个步骤时 再次单击添加问题按钮,这样您就添加了第二行,其中包含顶部的详细信息 在添加的第二行中,将“答案数”文本框下的文本框中的值从1更改为3,并从按钮A、B、C或D中选择3个答案。3个按钮必须变为绿色 现在单击提交详细信息按钮。这一次,警报显示两条消息,说明您选择的答案超过了所需数量 这是完全错误的,因为在第一行中,您选择的答案少于所述金额,在第二行中,您选择了正确数量的按钮,因此它应该会出现一个警报,说明您选择的答案少于所需金额,因为这对于第一行是正确的 我的问题: 为什么它会显示此wierd警报,为什么当它应该是警报中的一条消息时会出现两条消息?。此外,如果多行中有错误,那么我只希望在最上面一行显示一个警报。当这是固定的,我想然后为下一行的警报,依此类推 以下是相关的验证代码,我认为问题在于var上下文,因为我认为变量是错误的,但我不确定:Jquery 显示的警报不正确,jquery,Jquery,我的申请有一个问题,那就是。请按照以下步骤操作: 打开应用程序时,单击open Grid并选择选项4。按钮A、B、C和D将出现在下面 在“答案数”文本框中,键入数字1。然后单击A、B、C或D中的1个按钮,所选按钮将变为绿色。完成后,单击添加问题按钮 如您所见,您在顶部输入的详细信息将显示在下面的新行中。在您添加的新行中,在“答案数”列下的文本框中,将数字1更改为2。现在单击下面的“提交详细信息”按钮 应出现一个警报,说明您选择的答案少于所需数量。这是正确的,因为在文本框中,您表示需要2个答案,但
function validation() {
var context = $('#qandatbl');
var currenttotal = context.find('.answerBtnsOn').length;
alertValidation= "";
// Note, this is just so it's declared...
$(".numberAnswerTxtRow").each(function() {
if (!this.value) {
alertValidation += "\nPlease Enter in the Number of Answers you Require for this question\n";
}
else if (currenttotal > $(this).val()){
alertValidation += "\nYou have selected more answers than the required amount\n";
}
else if (currenttotal < $(this).val()) {
alertValidation += "\nYou have selected less answers than the required amount\n";
}
});
if(alertValidation != "")
{
alert(alertValidation);
return false;
}
这将统计整个表中选择的按钮数,而不仅仅是当前行。您应该使用$.each中的行
请注意,您的状态无论如何都应该与DOM分开,但既然您已经这样做了……您应该有var-alertValidation=;我记得这一次,但你当时是另一个用户。你有可能只使用一个用户吗?嗨,是的,对不起,我不得不使用这个帐户,因为一些奇怪的原因firefox不工作,我在firefox和IE之间使用不同的帐户,当问题解决后,我将使用一个用户。这是一个备份帐户
var context = $('#qandatbl');
var currenttotal = context.find('.answerBtnsOn').length;
$(".numberAnswerTxtRow").each(function() {
var currenttotal = $(this).closest('.optionAndAnswer')
.find('.answerBtnsOn')
.length;