如何在目标改变IE后取消选择?

时间:2013-08-05 20:07:14

标签: javascript html javascript-events

我正在使用复选框的动态元素列表,我在处理请求后如何取消选择元素时感到很遗憾: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'  /> 

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

2 个答案:

答案 0 :(得分: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;
  }
}

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

答案 1 :(得分: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;
    }      
  } 
});

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