我有几个复选框和一个按钮。当我点击复选框时 - 触发功能。这是所需的行为,但我想通过单击按钮来触发它。我希望有可能首先选择复选框(我尝试使用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;
});
答案 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();
});