通过单击按钮从单击复选框触发功能

时间:2014-12-18 18:20:52

标签: javascript jquery html checkbox

我有几个复选框和一个按钮。当我点击复选框时 - 触发功能。这是所需的行为,但我想通过单击按钮来触发它。我希望有可能首先选择复选框(我尝试使用return false和event.preventDefault但这些完全关闭选择)然后单击按钮 - 从复选框触发函数。这是jsfiddle的链接:

http://jsfiddle.net/j93k2xns/6/

例如:我可以选择3个复选框(不会发生任何事情),点击按钮后会出现三个警告。

代码:

HTML:

<input type="checkbox" name='check[]' id="first">first</input>
<input type="checkbox" name='check[]'>second</input>
<input type="checkbox" name='check[]'>third</input>
<input type="checkbox" name='check[]'>fourth</input>

<input type="button" value="validate" id="val-button">

JS:

var check_state;

$(document).on('click','input[name="check[]"]', function(e){
    if(check_state === true) {
        alert('a');
    } else {
         return false;   
    }

});
$(document).on('click','#val-button', function(){
   check_state = true; 
});

3 个答案:

答案 0 :(得分:1)

$(document).on('click','#val-button', function(){
   $( 'input[name="check[]"]' ).each(function( index ) {
       if($(this).is(':checked')) {
           alert("a");
           return true;
       }
    });
});

答案 1 :(得分:1)

他的问题有一些解释。如果我正确读取它,他想将任意函数绑定到复选框。单击该按钮将触发此事件。这是使用jQuery中的自定义事件实现这一目的的方法:

$(function () {
    $("input[name='check[]']").bind("myCustomButtonClick", function() { 
        if(this.checked) {
            alert('a');
        }
    });
})

$(document).on('click','#val-button', function(){
   $("input[name='check[]']").trigger("myCustomButtonClick");
});

相关的jsfiddle:http://jsfiddle.net/3yf7ymos/

答案 2 :(得分:0)

如果您想在用户选中复选框时执行某些操作,请添加事件侦听器:

$('input[type="checkbox"]').click(function() {

   if ($(this).is(':checked')) {
      // do something
   }
});

如果通过点击按钮检查输入后运行了几个功能:

function myFunction() {

    if ($('input[id="something"]:checked').length == 0) {
        // do something
    } else if ($('input[id="something_2"]:checked').length == 0) {
       // do something
    } 
//and so on..

}

$('#val-button').click(function() {

    myFunction();
});