javascript - 如何获取多选下拉列表中当前未选中的复选框的值?

标签 javascript jquery html checkbox

我创建了一个多选过滤器。对于每个选定的选项,将创建新的 div 元素,其 id 是选定复选框的值。到这里为止一切正常。但现在我想删除那些未选中选项(复选框)的 div。我尝试了以下方法,

 if(!($(this).is(":checked"))){
      alert('is un-checked: ' + $(this).val());
   }

但它不起作用。赋予 null 值。谁能建议我如何实现这一目标?

代码:

                     if (window.XMLHttpRequest)
                    {
                        areq = new XMLHttpRequest();
                    } else
                    {
                        areq = new ActiveXObject("Microsoft.XMLHTTP");
                    }

                    areq.onreadystatechange = function () {
                     if ((areq.readyState == 4) && (areq.status == 200)) {
                           document.getElementById("details7").innerHTML= areq.responseText;
                      var c=areq.responseText;
                              $('.matrb').SumoSelect({
                                    triggerChangeCombined: false,
                                    okCancelInMulti: true,

                               });
                        $('.matrb').on('change', function() { 

                        if ($('option:selected', this).is(':checked')) {

      alert('is checked: ' + $(this).val()); 
     am=$(this).val(); 
     nm=$(this).find('option:selected').attr("name");
      am = am.toString().match(/\w+$/)[0];           
console.log("am is:"+c); 

   } 
   else if(!($(this).is(":checked"))){
      alert('is un-checked: ' + $(this).val());
   }

                             if (window.XMLHttpRequest)
                    {
                        breq = new XMLHttpRequest();
                    } else
                    {
                        breq = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                             breq.onreadystatechange = function () {
                     if ((breq.readyState == 4) && (breq.status == 200)) {
                         if(!( document.getElementById(am))){ 
                             var namee=document.createElement('p');
                          var newDiv=document.createElement('div');
                          newDiv.setAttribute('id', am);
                            newDiv.setAttribute("style","display:inline;");
                             namee.setAttribute("style","display:inline;");
                          var htm=breq.responseText;
                          newDiv.innerHTML=htm;
                          namee.innerHTML=nm;
                          console.log(htm);
                          console.log(newDiv);
                          document.getElementById("details8").appendChild(namee);
                             document.getElementById("details8").appendChild(newDiv);
                         }

最佳答案

var uncheckedValues = $("select#id").find('option').not(':selected');
var uncheckedArray = uncheckedValues.map(function () { return this.value;}).get();
console.log(uncheckedArray);

关于javascript - 如何获取多选下拉列表中当前未选中的复选框的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40970275/

相关文章:

javascript - 将鼠标悬停在评级上时显示文本,并在单击时停留

html - Spring MVC - 如何在 bool 变量中绑定(bind) HTML 复选框值

javascript - <a> 标签的偏移量,偏移了几个像素

jquery - JSONP 调用显示 "Uncaught SyntaxError: Unexpected token : "

javascript - 是否可以从 main.js 访问 View 中声明的 js 变量?

jquery - 使用 jQuery 将悬停时的 div 宽度从 50% 更改为 70%

javascript - 如何验证具有多个选项卡的表单?

javascript - Epic 不在 Redux-Observable 中返回流

javascript - 当属性为字符串时,如何按属性从左到右对对象数组进行排序,首先是数字?

java - 在 Play Framework 中通过 GET 请求发送日期参数的理想方式是什么?