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