gpt4 book ai didi

jquery - 当我选择新按钮时,文本框中的数字不正确

转载 作者:行者123 更新时间:2023-12-01 05:02:38 25 4
gpt4 key购买 nike

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

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

例如,用户选择了 2 个按钮,然后将其添加到新按钮中,那么如果用户选择了另外 2 个按钮,则它应该声明选择了 2 个按钮,但它表示选择了一个按钮。

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

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

下面是显示文本框中所选按钮数量的 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);
});

下面是第一个文本框的 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;
}
}

下面是每次用户提交他们选择的按钮数量时添加新行的函数:

function insertQuestion(form) {   


var $tr = $("<tr></tr>");
var $noofanswers = $("<td class='noofanswers'></td>");
var $answer = $("<td class='answer'></td>");


$('.numberAnswerTxt', context).each(function() {
var $this = $(this);
var $noofanswersText = $("<span class='oneanswer'>Only 1 Answer</span><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);
});


$('#optionAndAnswer .answers').each(function() {
var $this = $(this);
var $newBtn = '';
if($this.is(':visible')){
$newBtn = $("<input class='answerBtnsRow answers' type='button' style='display: inline-block;' onclick='btnclick(this);' />").attr('name', $this.attr('name')).attr('value', $this.val()).attr('class', $this.attr('class'));
}else{
$newBtn = $("<input class='answerBtnsRow answers' type='button' style='display: none;' onclick='btnclick(this);' />").attr('name', $this.attr('name')).attr('value', $this.val()).attr('class', $this.attr('class'));
}

$answer.append($newBtn);
});


$tr.append($noofanswers);
$tr.append($answer);

$('#qandatbl').append($tr);

}

最佳答案

我想您还有某种提交按钮。当您单击该按钮时,您必须将所有按钮重置为其默认值。类等。我认为这就是问题所在。

假设您将按钮放在 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');

});

关于jquery - 当我选择新按钮时,文本框中的数字不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8653675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com