jQuery识别页面加载上的单选按钮的不正确状态,当单选值=“0”时;否”;并且两个无线电都没有被选择
jQuery recognising incorrect state of radio buttons on page load when radio value="No" and neither radio is selected
我在页面上有单选按钮,可以根据其他元素的状态添加或删除css类。
类testclass
默认添加到元素slave
(即页面加载的HTML为:
<input type="radio" value="No" name="master" /> No
<input type="radio" value="Yes" name="master" /> Yes
<input type="text" name="a" id="slave" class="testclass" />
如果选择了"否"无线电,下面的jQuery将删除该类
$("input[name$='master']").change(function(){
if(this.value === 'No') {
$('#slave').removeClass('testclass');
} else {
$('#slave').addClass('testclass');
}
}); $("input[name$='master']").filter(':checked').change()
页面加载后,在状态之间来回移动可以很好地工作,但我在页面加载时触发了该功能,并且当没有选择复选框时,它会删除类。(如果"是"加载为选中状态,则可以)。
有趣的是,如果我反转条件,要求"是"来删除类(页面加载时类仍然存在),也可以
我认为javascript可能将未进行的选择等同于值"否",因此我尝试了严格的等式,但没有区别。
有什么想法吗?
我开发了一把小提琴供您考虑。这是它的链接=>http://jsfiddle.net/6c7F2/
我认为回答这个问题的最好方法是让你了解关于你在这里提供的代码的一些事情。我会写评论给它。
$( document ).ready(function(){ // this function is called once your page loads
$("input[name$='master']").change(function(){
//this function is not called until you click the radio buttons.
// Be careful to note that this function is never called on page load.
// You can test it in the fiddle I created
if(this.value === 'No') {
$('#slave').removeClass('testclass');
// this alert in the fiddle is called only
// when you click the radio buttons. Not on page load
alert("It entered");
} else {
$('#slave').addClass('testclass');
}
});
$("input[name$='master']").filter(':checked').change()
});
因此,请确保要在页面加载上执行的内容和检查应该在$("input[name$='master']").change(function(){});
的范围之外
只有当您单击单选按钮而不是页面加载时才会触发此操作。
之所以发生这种情况,是因为您在页面加载时没有选择任何值,但仍在触发事件。
尝试:
默认情况下,选中任意复选框。
<input type="radio" value="No" name="radios" checked="checked"/> No
或
删除该行
$("input[name$='master']").filter(':checked').change()
相关文章:
- 只选择两个选择器中的一个
- jquery自动更新两个选择字段
- jQuery验证插件-比较两个选择下拉列表的自定义方法
- 使用 jquery 控制两个选择输入的组合值
- 我不知道如何做出两个选择,然后展示你的选择
- 选择绑定到同一范围的按钮,单击时会相互触发.如何从angular.js中的两个选择列表按钮解除范围绑定
- JAVASCRIPT:根据两个选择确定路径
- 从两个选择框中添加值
- 内容在 Ember 中绑定两个选择框
- 如何创建两个选择列表并只允许一个选择
- 如何使用 Angularjs 过滤器来过滤绑定到两个选择框的数组
- 在角度 js 中的两个选择下拉列表之间切换
- 如何基于两个选择器查找元素
- Jquery 委托事件仅在两个选择器之一上工作
- 从两个选择列表中选择 A + B 时,#Anchor 加载结果页面
- jQuery - 如何计算 if/else 语句的两个选择选项值
- 两个选择下拉框,第一个更新第二个无AJAX
- 带有两个选择框的动态页面,iframe和jQuery(不带PHP)
- 如何使用jquery隐藏或显示具有两个选择选项的输入
- 当一个选择框选项更改时,两个选择选项更改