仅当选中复选框时,我才希望reload.location
点击事件。对我来说,这似乎是基本条件,但没有用。也许需要其他方法?我发现,勾选复选框时,<input type="checkbox">
元素中没有html更改。也许这是原因,或者不可能将这些条件组合在一起? else语句是对上一个UI页面的调用。在下面的尝试中,它跳过了if语句。
我的尝试
$(document.body).on("click", "#button", function(){
if (document.getElementById('checkbox').checked) {
location.reload(true);
} else {
return_to_page( this.dataset.return )
}
});
以上操作正常,但是由于缺少preventDefault:而被忽略
$(document.body).on("click", "#button", function(e){
e.preventDefault();
//etc
});
答案 0 :(得分:1)
checked
不是jQuery对象的属性。您可以使用prop()
来获取属性
$('#button').click( function() {
if ($('#checkbox').prop('checked')) {
location.reload(true);
}
// alternative #1 - use the 'checked' property of the Element in the jQuery object:
if ($('#checkbox')[0].checked) {
location.reload(true);
}
// alternative #2 - use the 'checked' property of the Element outside of jQuery:
if (document.getElementById('checkbox').checked) {
location.reload(true);
}
});
这是一个可行的示例:
$('#button').click(function() {
if ($('#checkbox').prop('checked')) {
// location.reload(true);
console.log('Reload would happen now...');
} else {
console.log('Staying on the current page');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<label>
<input type="checkbox" id="checkbox" />
Reload?
</label>
<button id="button">Go</button>
答案 1 :(得分:0)
$('#button').click( function() {
if( $("input[id='checkbox']:checked") ) {
location.reload(true);
}
});
替代
$('#button').click( function() {
if( $('#checkbox').is(':checked') ) {
location.reload(true);
}
});
所有合一板的方法:
$('#checkbox').is(":checked")
$('#checkbox').prop('checked')
$('#checkbox')[0].checked
$('#checkbox').get(0).checked