我需要检查一个检查箱的检查财产,并使用jQuery进行检查财产的操作。
例如,如果年龄检查框被检查,那么我需要显示一个文本框进入年龄,否则隐藏文本框。
但下列代码默认返回虚假:
如果($('#isAgeSelected').attr('checked')) { $("#txtAge").show(); } 其他 { $("#txtAge").hide(); } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" id="isAgeSelected"/> <div id="txtAge" style="display:none"> 年龄 已选择 </div>
如何成功查询已检查的房地产?
如何成功查询已检查的房地产?
检查箱 DOM 元素的检查属性将为您提供检查元素的状态。
考虑到您的现有代码,您可以这样做:
if(document.getElementById('isAgeSelected').checked) {
$("#txtAge").show();
} else {
$("#txtAge").hide();
}
但是,有一个更方便的方式来做到这一点,使用Toggle:
$('#isAgeSelected').click(功能() { $("#txtAge").toggle(this.checked); }; <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="checkbox" id="isAgeSelected"/> <div id="txtAge" style="display:none"> 年龄是某种东西</div>
我进入了相同的问题,我有一个ASP.NET检查箱。
<asp:CheckBox ID="chkBox1" CssClass='cssChkBox1' runat="server" />
在 jQuery 代码中,我使用下面的选择器来检查检查检查箱是否已被检查,并且它似乎像一个魅力一样工作。
if ($("'.cssChkBox1 input[type=checkbox]'").is(':checked'))
{ ... } else { ... }
我相信你也可以使用 ID 而不是 CssClass,
if ($("'#cssChkBox1 input[type=checkbox]'").is(':checked'))
{ ... } else { ... }
我希望这能帮助你。
使用点击事件处理器对检查箱属性是不可靠的,因为检查的属性在执行事件处理器本身时可能会发生变化!
理想情况下,您希望将代码放入变更事件交易器中,因为它每当检查箱的值发生变化时都会被释放(无论它是如何进行的)。
$('#isAgeSelected').bind('change', function () {
if ($(this).is(':checked'))
$("#txtAge").show();
else
$("#txtAge").hide();
});
我决定发表一个答案,关于如何在没有jQuery的情况下做同样的事情。
var ageCheckbox = document.getElementById('isAgeSelected');
var ageInput = document.getElementById('txtAge');
// Just because of IE <333
ageCheckbox.onchange = function() {
// Check if the checkbox is checked, and show/hide the text field.
ageInput.hidden = this.checked ? false : true;
};
首先,您将两个元素通过他们的 ID. 然后,您将对检查箱的交换事件分配一个功能,检查检查是否已检查,并适当设置年龄文本字段的隐藏属性。
下面是你试试的技巧。
添加
如果跨浏览器兼容性是一个问题,那么我建议将CSS显示属性设置为无与伦比。
elem.style.display = this.checked ? 'inline' : 'none';
缓慢但跨浏览器兼容。
我使用谷歌的CDN,还有很多CDN可以选择。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
如果当前点击的检查框被检查,则将关闭所有其他,并启用当前的,如果当前的未检查,则将重新启用所有检查框。
<script type="text/javascript">
$(document).ready(function() {
var checkbox_selector = '.mycheck input[type=checkbox]';
$(checkbox_selector).click(function() {
if ($($(this)).is(':checked')) {
// Disable all checkboxes
$(checkbox_selector).attr('disabled', 'disabled');
// Enable current one
$($(this)).removeAttr('disabled');
}
else {
// If unchecked open all checkbox
$(checkbox_selector).removeAttr('disabled');
}
});
});
</script>
简单的测试方式
<form method="post" action="">
<div class="mycheck">
<input type="checkbox" value="1" /> Television
<input type="checkbox" value="2" /> Computer
<input type="checkbox" value="3" /> Laptop
<input type="checkbox" value="4" /> Camera
<input type="checkbox" value="5" /> Music Systems
</div>
</form>
输出屏幕:
此分類上一篇
如果您正在使用更新版本的jQuery,您必须转到.prop 方法来解决问题:
$('#isAgeSelected').prop('checked')将返回真实的,如果检查和假的,如果未检查. 我确认了它,我遇到了这个问题之前. $('#isAgeSelected').attr('checked')和 $('#isAgeSelected').is('checked')是返回不确定的,这不是一个值得答案的情况。
if($('#isAgeSelected').prop('checked')) {
$("#txtAge").show();
} else {
$("#txtAge").hide();
}
输入类型="checkbox"的检查属性与默认检查属性进行地图,而不是检查属性。
因此,当在一个页面上做点什么时,当一个检查箱在未检查的情况下进行检查时,请使用 prop() 方法。
使用 attr() 或 getAttribute(在纯粹的 JavaScript 中)在这些情况下不是做事的正确方式。
如果元素是相关的检查箱,那么做这样的事情来征收值:
elem.checked
或
$(elem).prop('checked')
如果您的 HTML 标签是:
<input type="checkbox" />
特斯拉使用:
$(element).attr("checked"); // Will give you undefined as initial value of checkbox is not set
如果使用POP:
$(element).prop("checked"); // Will give you false whether or not initial value is set
2)如果您的HTML标签是:
<input type="checkbox" checked="checked" />// May be like this also checked="true"
特斯拉使用:
$(element).attr("checked") // Will return checked whether it is checked="true"
Prop 使用:
$(element).prop("checked") // Will return true whether checked="checked"
这个例子是按钮。
尝试下列:
<input type="button" class="check" id="checkall" value="Check All" /> <input type="button" id="remove" value="Delete" /> <br/>
<input type="checkbox" class="cb-element" value="1" /> Checkbox 1 <br/>
<input type="checkbox" class="cb-element" value="2" /> Checkbox 2 <br/>
<input type="checkbox" class="cb-element" value="3" /> Checkbox 3 <br/>
$('#remove').attr('disabled', 'disabled');
$(document).ready(function() {
$('.cb-element').click(function() {
if($(this).prop('checked'))
{
$('#remove').attr('disabled', false);
}
else
{
$('#remove').attr('disabled', true);
}
});
$('.check:button').click(function()
{
var checked = !$(this).data('checked');
$('input:checkbox').prop('checked', checked);
$(this).data('checked', checked);
if(checked == true)
{
$(this).val('Uncheck All');
$('#remove').attr('disabled', false);
}
else if(checked == false)
{
$(this).val('Check All');
$('#remove').attr('disabled', true);
}
});
});
自动化
$(document).ready(function()
{
$('#isAgeSelected').change(function()
{
alert( 'value =' + $('#chkSelect').attr('checked') );
});
});
HTML
<b> <input type="isAgeSelected" id="chkSelect" /> Age Check </b>
<br/><br/>
<input type="button" id="btnCheck" value="check" />
jQuery
$(document).ready(function()
{
$('#btnCheck').click(function()
{
var isChecked = $('#isAgeSelected').attr('checked');
if (isChecked == 'checked')
alert('check-box is checked');
else
alert('check-box is not checked');
})
});
艾雅克斯
function check()
{
if (isAgeSelected())
alert('check-box is checked');
else
alert('check-box is not checked');
}
function isAgeSelected()
{
return ($get("isAgeSelected").checked == true);
}
我正在使用 jQuery 1.11.1 并且我也遇到设置和阅读检查箱值问题。
我终于通过这两个功能解决了它:
function setCheckboxValue(checkBoxId, checked) {
if (checkBoxId && (checked === true || checked === false)) {
var elem = $('#' + checkBoxId);
if (checked === true) {
elem.attr('checked', 'checked');
} else {
elem.removeAttr('checked');
}
}
}
function isChecked(checkBoxId) {
return $('#' + checkBoxId).attr('checked') != null;
}
它可能看起来有点脏,但它解决了我在不同类型的浏览器中所有的电缆问题。
我需要检查一个检查箱的检查财产,并使用jQuery进行检查财产的操作。
X -
1) 运行上载以获得检查箱值,如果年龄检查箱被检查,那么我需要显示一个文本框进入年龄,否则隐藏文本框。
2)如果年龄检查框被检查,那么我需要显示一个文本框进入年龄,否则用检查框的点击事件隐藏文本框。
因此,代码不会默认返回虚假:
尝试下列:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<h1>Jquery Demo</h1>
<input type="checkbox" name="isAge" checked id="isAge"> isAge <br/>
<div id="Age" style="display:none">
<label>Enter your age</label>
<input type="number" name="age">
</div>
<script type="text/javascript">
if(document.getElementById('isAge').checked) {
$('#Age').show();
} else {
$('#Age').hide();
}
$('#isAge').click(function() {
if(document.getElementById('isAge').checked) {
$('#Age').show();
} else {
$('#Age').hide();
}
});
</script>
</body>
</html>
此分類上一篇: https://jsfiddle.net/sedhal/0hygLtrz/7/