Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery:选中已选中的上一个复选框_Jquery - Fatal编程技术网

jQuery:选中已选中的上一个复选框

jQuery:选中已选中的上一个复选框,jquery,Jquery,我有一个文本框,当文本发生变化时,它会调用一些Javascript 在这个文本框之前,我有两个互斥的复选框(chkA,chkB)。 当我启动新功能时,我希望能够检查当前选中的复选框。到目前为止我有这个 $(".textbox1").keyup(function () { var chk = $(this).prevAll(":checked").first().attr('class'); .... }); 代码继续执行“如果class=bla

我有一个文本框,当文本发生变化时,它会调用一些Javascript

在这个文本框之前,我有两个互斥的复选框(chkA,chkB)。 当我启动新功能时,我希望能够检查当前选中的复选框。到目前为止我有这个

   $(".textbox1").keyup(function () {
                var chk = $(this).prevAll(":checked").first().attr('class');  ....

    });
代码继续执行“如果class=blah,那么做一些事情,否则什么也不做”


它适用于我的单选按钮代码,但不适用于我的复选框。“chk”最终为空。

如果您需要知道选中复选框的类别(我使用了一个我称为“wrapper”的虚构元素,该元素保存所有输入字段,请使用正确的元素替换该元素或张贴标记):


如果您需要知道选中复选框的类别(我使用了一个虚构的元素,我称之为“包装器”,它保存了您的所有输入字段,请使用正确的元素替换它或张贴您的标记):

“我有两个相互排斥的复选框(chkA、chkB)。”使用复选框的目的是允许用户做出相互包含的选择。您可能需要重新考虑并使用单选按钮(设计为相互排斥)

也就是说,
keyup
的处理程序似乎正在将checked属性设置为true的最接近(文本框)的前一个元素的class属性设置为true。您的复选框(chkA,chkB)是否符合该标准,或者在它们之后(但在您的文本框之前)是否有其他复选框被选中?

“我有两个相互排斥的复选框(chkA,chkB)。”使用复选框的目的是允许用户做出相互包含的选择。您可能需要重新考虑并使用单选按钮(设计为相互排斥)


也就是说,
keyup
的处理程序似乎正在将checked属性设置为true的最接近(文本框)的前一个元素的class属性设置为true。您的复选框(chkA、chkB)是否符合该标准,或者在它们之后(但在您的文本框之前)是否还有其他复选框被选中?

。prevall()以相反的顺序给出元素(在前面的同级列表中),因此。first()实际上是您希望最后一个的,反之亦然。.prevall()以相反的顺序给出元素(在前面的同级列表中向上),因此.first()实际上是您希望的最后一个,反之亦然。谢谢。我不知道JQ中的.closest()特性。谢谢。我不知道JQ中的.closest()特性。
$(".textbox1").keyup(function () {
       if($(this).closest('#wrapper').find("input:checkbox:checked").hasClass('blah')){
          //do what you need

});