Jquery 选择新按钮时,文本框中的数字不正确

Jquery 选择新按钮时,文本框中的数字不正确,jquery,dom,Jquery,Dom,我有一个文本框,它应该说明选择了多少个按钮 我遇到的问题是,用户选择了这些按钮,然后将这些按钮添加到一行中。现在,如果我选择下一组按钮,它所做的是将以前选择的按钮与当前选择的按钮一起添加 例如,如果用户选择了2个按钮,然后将其添加到一个新按钮中,那么如果用户选择了另外2个按钮,则应说明选择了2个按钮,而不是说明选择了一个按钮 这是因为我有多个文本框,它们具有相同的类(.numberTranswerTXT),所以我认为这是将数字相加的原因。所以我的问题是,如何区分同一类的文本框 顶部有一个文本框,

我有一个文本框,它应该说明选择了多少个按钮

我遇到的问题是,用户选择了这些按钮,然后将这些按钮添加到一行中。现在,如果我选择下一组按钮,它所做的是将以前选择的按钮与当前选择的按钮一起添加

例如,如果用户选择了2个按钮,然后将其添加到一个新按钮中,那么如果用户选择了另外2个按钮,则应说明选择了2个按钮,而不是说明选择了一个按钮

这是因为我有多个文本框,它们具有相同的类(.numberTranswerTXT),所以我认为这是将数字相加的原因。所以我的问题是,如何区分同一类的文本框

顶部有一个文本框,用户在其中选择按钮,然后每行有一个文本框,说明之前为每行选择的按钮数量

下面是jquery代码,它显示文本框中选择的按钮数:

$('.numberAnswerTxt').val($('.answerBtnsOn:visible').size());
下面是每次添加新行的jquery代码:

 $('.numberAnswerTxt', context).each(function() {
        var $this = $(this);
        var $noofanswersText = $("<input type='text' class='numberAnswerTxt' onkeyup='numberKeyUp(this)' onkeypress='return isNumberKey(event)' onChange='getButtons()'>").attr('name', $this.attr('name')).attr('value', $this.val())

        $noofanswers.append($noofanswersText);
    });
$('.numberTranswerTXT',上下文)。每个(函数(){
var$this=$(this);
var$noofanswertext=$(“”).attr('name',$this.attr('name')).attr('value',$this.val())
$noofanswers.append($noofanswertext);
});
下面是第一个文本框的html:

<input type="text" name="numberAnswer" class="numberAnswerTxt" onkeyup="numberKeyUp(this)" onkeypress="return isNumberKey(event)" onChange="getButtons()" >

他们正在选择的按钮的html:

<input class="answerBtns answers" name="answerAName"    id="answerA"        type="button"   value="A"       onclick="btnclick(this);"/>
<input class="answerBtns answers" name="answerBName"    id="answerB"        type="button"   value="B"       onclick="btnclick(this);"/>
<input class="answerBtns answers" name="answerCName"    id="answerC"        type="button"   value="C"       onclick="btnclick(this);"/>
<input class="answerBtns answers" name="answerDName"    id="answerD"        type="button"   value="D"       onclick="btnclick(this);"/>
<input class="answerBtns answers" name="answerEName"    id="answerE"        type="button"   value="E"       onclick="btnclick(this);"/>
<input class="answerBtns answers" name="answerFName"    id="answerF"        type="button"   value="F"       onclick="btnclick(this);"/>
<input class="answerBtns answers" name="answerGName"    id="answerG"        type="button"   value="G"       onclick="btnclick(this);"/>

onlick事件代码:

function btnclick(btn)
{
    var context = $(btn).parents('#optionAndAnswer');
    if (context.length == 0) {
        context = $(btn).parents('tr');
    }

    if (context.find(".numberAnswerTxt").val() == "") {
        alert('You must first enter in the number of answers you require in the textbox above');
        return false;
    }

    if ($(btn).hasClass("answerBtnsOn")) {
        $(btn).removeClass("answerBtnsOn").addClass("answerBtnsOff");
        return false;
    }

    var currenttotal = context.find('.answerBtnsOn').length;
    if (context.find(".numberAnswerTxt").val() <= currenttotal) {
        alert('You are not allowed beyond the limit of the number of answers you require, deselect other button');
        return false;
    }

    if ($(btn).hasClass("answerBtnsOff")) {
        $(btn).removeClass("answerBtnsOff").addClass("answerBtnsOn");
        return false;
    }
}
功能btn点击(btn)
{
变量上下文=$(btn).parents('optionandswer');
if(context.length==0){
上下文=$(btn).parents('tr');
}
if(context.find(“.numberTranswerTXT”).val()=”){
警报(“您必须首先在上面的文本框中输入您需要的答案数量”);
返回false;
}
if($(btn).hasClass(“应答器”)){
$(btn).removeClass(“answerBtnsOn”).addClass(“answerBtnsOff”);
返回false;
}
var currenttotal=context.find('.answerBtnsOn').length;

if(context.find(“.numberTranswerTXT”).val()我想您也有某种提交按钮。 单击该按钮时,必须将所有按钮重置为其默认值。 我想这就是问题所在

假设您将按钮放在一个div中,而不是和提交按钮放在一起。 试试这个

$('#myDiv input[type=button]').each(function(){
//if you dont say what class to remove it will just remove any class on it.
$(this).removeclass();
$(this).addclass('yourDefaultClass');

});

你能发布更多的html吗?我想知道用户在选择什么。:)还有你的计数过程,你也可以发布吗?我已经编辑了这个问题,包括他们正在选择的按钮的html,点击事件代码现在也有问题:)是的,我有一个提交按钮,我可以给你看代码吗?你可以,你不必。我想这会解决问题;)理论上我知道我需要每次设置值,但如何重置?是否使用循环(如果是,我必须诚实地说,我是循环垃圾)谢谢,这是有意义的(感谢上帝,没有循环哈哈):)
$('#myDiv input[type=button]').each(function(){
//if you dont say what class to remove it will just remove any class on it.
$(this).removeclass();
$(this).addclass('yourDefaultClass');

});