0

我正在使用复选框的动态元素列表,我不知道如何在处理请求后取消选择元素:http: //jsfiddle.net/Arandolph0/k7uLg/15/

document.attachEvent('onclick', function (e) {

    var myBtn = document.getElementById('mybutton')
    var target = e.srcElement;

    if (target.name == "mycheckbox1" || target.name == "mycheckbox2") {
        if(target.checked){
            myBtn.disabled = false;
           // list.addRecord(target);
        } else if(!list.hasItems()) {
            myBtn.disabled = true;
            target.checked = false;
        } 
        if(list.hasItems()) {
            myBtn.disabled = false;
        }      
    } 
});

function someFunction() {
   alert("Some function");
}

这是HTML:

<input type="button" id='mybutton' value="Click" disabled onclick="someFunction()"/>   
<input type="checkbox" name='mycheckbox1'  /> 
<input type="checkbox" name='mycheckbox2'  /> 

所以,总而言之,在按钮“做某事”之后,我将如何取消选中选中的复选框?

4

2 回答 2

0

你只需要使用

$("input:checkbox").removeAttr("checked");

这将取消选中所有复选框。我还附上了您的代码的工作副本。

$(document).click(function (event) {

var myBtn = document.getElementById('mybutton');
var target = event.target;

if (target.name == "mycheckbox1" || target.name == "mycheckbox2") {
    if(target.checked){
        myBtn.disabled = false;
       // list.addRecord(target);
    } else if(!list.hasItems()) {
        myBtn.disabled = true;
        target.checked = false;
    } 
    $("input:checkbox").removeAttr("checked");
    if(list.hasItems()) {
        myBtn.disabled = false;
    }      
  } 
});

我希望这将能够解决您的问题。

于 2013-08-05T20:45:36.190 回答
0

您可以按类型获取所有复选框元素,然后将它们设置为 false。

function unselect() {
  var elements = document.getElementsByTagName('input');

  for(var i = 0; i < elements.length; i++)
  {
    if(elements[i].type.toLowerCase() == 'checkbox')
        elements[i].checked = false;
  }
}

它不是很性感,但它完成了工作。

于 2013-08-05T20:41:03.073 回答