jQuery,如果选中复选框

下面我有一个函数,我只希望在选中同一个tr中的复选框时触发它。请告诉我哪里做错了,常用的方法不管用。谢谢

JS

$(".add_menu_item_table").live('click', function() {
var value_td = $(this).parents('tr').find('td.td_name').text();
if ($('input.checkbox_check').attr(':checked')); {
var newDiv = $('<div class="div_menu_button"></div>');
var showDiv = $('<div id="show' + "0" + numShow++ + '" class="menu_button_info hidden"></div>');
var toggleTrigger = $('<a id="toggleshow' + "0" + numToggle++ + '" data-target="#show' + "0" + numTarget++ + '" class="toggle_trigger actions">&nbsp;</a><div style="padding:5px"></div>');
var menuForm = $('<form id="menu_edit_form' + "0" + numForm++ + '" class="menu_creation_form"></form>');
$('#created_buttons_list').append(
newDiv.text(value_td)
);
newDiv.wrap("<li></li>");
newDiv.append(toggleTrigger);
newDiv.append(showDiv);
showDiv.append(menuForm);
menuForm.html('<label for="navigation_label">Navigation Label</label><input id="navigation_label' + "0" + numLabelone++ + '" type="text" placeholder="Navigation Label" name="navigation_label"><label for="attribute">Attribute</label><input id="attribute' + "0" + numLabeltwo++ + '" type="text" type="text" placeholder="Attribute" name="attribute"><label for="url">URL</label><input id="url' + "0" + numLabelthree++ + '" type="text" type="text" placeholder="URL" name="url"><input type="button" value="Remove" class="button_link remove_button"> <input type="reset" value="Cancel" class="button_link">');
}
});


var numToggle = 0;
var numShow = 0;
var numTarget = 0;
var numForm = 0;
var numLabelone = 0;
var numLabeltwo = 0;
var numLabelthree = 0;
<table width="316px" border="0" cellspacing="0" cellpadding="0" id="table-data">
<tbody>
<tr>
<td width="20px"><input type="checkbox" style="width:20px;" value="1" name="checkbox"></td>
<td width="200px"><a href="/admin/feedbackmanager/sortby/2/sortdesc/0">Page Name</a></td>
<td width="20px"><a href="/admin/feedbackmanager/sortby/3/sortdesc/0">Add</a></td>
</tr>
<tr>
<td><input type="checkbox" style="width:20px;" value="1" name="checkbox" class="checkbox_check"></td>
<td class="td_name">Timeplot</td>
<td><input class="add_menu_item_table" name="add_menu_item" value="Add" type="button"></td>
</tr>
<tr>
<td><input type="checkbox" style="width:20px;" value="1" name="checkbox" class="checkbox_check"></td>
<td class="td_name">Operations Manuals</td>
<td><input class="add_menu_item_table" name="add_menu_item" value="Add" type="button"></td>
</tr>
</tbody>
</table>
1277372 次浏览
if ($('input.checkbox_check').is(':checked')) {

jQuery 1.6或更高版本:

if ($('input.checkbox_check').prop('checked')) {
//blah blah
}

跨浏览器兼容的方式来确定一个复选框是否被选中 是使用属性https://api.jquery.com/prop/

$('#checkboxId').is(':checked')用于验证是否选中

,这个$("#checkboxId").prop('checked', true)检查

,这个$("#checkboxId").prop('checked', false)要取消检查

下面是Attr |道具|是的主要区别:

来源:http://api.jquery.com/attr /

$( "input" )
.change(function() {
var $input = $( this );
$( "p" ).html( ".attr( 'checked' ): <b>" + $input.attr( "checked" ) + "</b><br>" +
".prop( 'checked' ): <b>" + $input.prop( "checked" ) + "</b><br>" +
".is( ':checked' ): <b>" + $input.is( ":checked" ) + "</b>" );
})
.change();
p {
margin: 20px 0 0;
}
b {
color: blue;
}
<meta charset="utf-8">
<title>attr demo</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 

<input id="check1" type="checkbox" checked="checked">
<label for="check1">Check me</label>
<p></p>
 



 

</body>
</html>

如果上述方法都不管用,就像我的例子一样,试试这个:

  <script type="text/javascript">
$(function()
{
$('[name="my_checkbox"]').change(function()
{
if ($(this).is(':checked')) {
// Do something...
alert('You can rock now...');
};
});
});
</script>

如果检查:

$( "SELECTOR" ).attr( "checked" )  // Returns ‘true’ if present on the element, returns undefined if not present
$( "SELECTOR" ).prop( "checked" ) // Returns true if checked, false if unchecked.
$( "SELECTOR" ).is( ":checked" ) // Returns true if checked, false if unchecked.

获取检查值:

$( "SELECTOR:checked" ).val()

获取检查值:

$( "SELECTOR:checked" ).length

检查或取消检查复选框

$( "SELECTOR" ).prop( "disabled", false );
$( "SELECTOR" ).prop( "checked", true );

要检查输入并通过复选框确认,请使用此脚本…

 $(document).on("change", ".inputClass", function () {
if($(this).is(':checked')){
confirm_message = $(this).data('confirm');
var confirm_status = confirm(confirm_message);
if (confirm_status == true) {
//doing somethings...
}
}});  
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label> check action </lable>
<input class="inputClass" type="checkbox" data-confirm="are u sure to do ...?" >

jQuery/Javascript新手,尝试了上述解决方案。最终,这对我来说是有效的:

  1. 在加载页面时保持元素隐藏(因为默认情况下复选框=未选中),然后
  2. 根据是否选中复选框来显示/隐藏元素。

这可能是一个丑陋的/多余的/无关的语法,但它现在工作!


注意:所有这些都在下面的<script>标记中,就在你的HTML页面上的</body>标记之前:

<script type="text/javascript">
// 'solution code' goes here...
</script>

“解决方案代码”:

    $(document).ready(function(){


// HIDE ELEMENTS UPON PAGE LOAD (CHECKBOX = UNCHECKED)
if ($([id="show_box"]).is(':checked') == false)
$("#hiddenDiv").hide();


// SHOW/HIDE ELEMENTS VIA CHECKBOX STATUS
$('[id="show_box"]').change(function()
{
if ($(this).is(':checked'))
$("#hiddenDiv").fadeIn();
else
$("#hiddenDiv").fadeOut();
});


});
  • [id =“show_box"] (id为'show_box'的复选框)
  • # hiddenDiv(我想要隐藏/显示的元素的id)
  • (因为它是嵌套的,所以它最终表示'show_box')

这里是页面上的HTML代码,“解决方案代码”指的是:

<!-- CHECKBOX -->
<input type="checkbox" id="show_box" name="box" value="">


<!-- ELEMENT THAT SHOWS/HIDES -->
<div id="hiddenDiv"></div>

你可以使用.is(':checked')方法,如果元素被选中,它会返回真正的,否则它会返回

工作示例

$('input').on('click', function(){
isChecked = $(this).is(':checked')
  

if(isChecked){
$('html').css('background-color','green')
}
else{
$('html').removeAttr('style')
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label><input type="checkbox"> Try me </label>

我需要知道这个属性来自动选中/取消选中“子复选框”;这是有效的:

jQuery('.checkbox-parent').click(function(){
jQuery('.checkbox-child').prop(
'checked',
jQuery('.checkbox-parent').prop('checked')
);
});