我正在尝试创建一个覆盖按钮来禁用我正在构建的表单的自动完成,并且如果选择该按钮,则希望使用Javascript使div“manualOverrideWarning”显示警告。问题是该功能仅在用户第一次按下按钮时起作用,但是一旦关闭覆盖,则不会删除警告。我在代码中如何使用Javascript错误的任何和所有指针将不胜感激!谢谢!
HTML:
Manual Overide:
<label>No <input type="radio"
name="manualOverride" id="manualOverrideNo" value="no" checked /></label>
<label>Yes<input type="radio"
name="manualOverride" id="manualOverrideYes" value="yes" /></label>
<div id="manualOverrideWarning">test</div>
使用Javascript:
$('#manualOverrideYes, #manualOverrideNo').bind('change', function () {
if($('input[name="manualOverrideYes"]:checked')) {
$('#manualOverrideWarning').text('Autocomplete Disabled!');
} else {
if($$('#manualOverrideWarning').text(''));
}
});
再次感谢你们!你们都是我的英雄!
答案 0 :(得分:2)
我会检查is():
if($('input[name="manualOverrideYes"]').is(':checked')) {
或者如果您喜欢原始版本,那么您需要检查length
属性以查看是否实际返回了任何结果:
if($('input[name="manualOverrideYes"]:checked').length)
此外看起来你有一个拼写错误:
if($$('#manualOverrideWarning').text(''));
我认为应该是
if($('#manualOverrideWarning').text(''));
答案 1 :(得分:2)
您需要使用.is()来针对选择器
测试所选元素if($('input[name="manualOverrideYes"]').is(':checked')) {
$('input[name="manualOverrideYes"]:checked')
返回一个jQuery包装器对象,它始终是真实的。
如果选中该复选框,那么jQuery包装器将包含1个元素else 0元素,但仍将返回一个对象。
另一种使用它的方法是测试返回对象的长度,如
if($('input[name="manualOverrideYes"]:checked').length) {