首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果没有“选中”属性,如何检查复选框的状态?

问如果没有“选中”属性,如何检查复选框的状态?
EN

Stack Overflow用户
提问于 2016-08-17 12:10:38
回答 4查看 3.5K关注 0票数 3

我正在尝试使用Selenium或Javascript检查复选框的状态,但是在做了大量的研究之后,我仍然做不到。

我的问题是:复选框没有“选中”attrubute:

代码语言:javascript
复制
<input type="checkbox" name="site[new_sign_up]" id="site_new_sign_up" value="1">

对于普通复选框,我使用下一个字符串来检测是否选中了复选框:

代码语言:javascript
复制
if (checkbox.GetAttribute("checked") != null && checkbox.GetAttribute("checked").Equals("true"))

我知道这可以用JS做:

代码语言:javascript
复制
$get("isAgeSelected").checked == true

但我仍然不能这样做,因为我的复选框没有“选中”属性。

如果使用selenium,我会检查element的"Selected“属性,它也不会告诉我复选框状态的真相。

关于怎么做的任何建议吗?,谢谢。

EN

回答 4

Stack Overflow用户

发布于 2016-08-17 12:15:11

DOM为所有输入类型提供了一个已检查的属性,不管它们是否具有选中属性(或者即使它们不是可检查的,即文本元素)。

不应该依赖于选中的属性来确定复选框是否被选中。

代码语言:javascript
复制
var x = document.createElement('input');
console.log(x.checked); //false
x.type = 'checkbox';
console.log(x.checked); //false
x.checked = true;
console.log(x.checked); //true
console.log(x); //<input type="checkbox"> - see? no checked attribute, yet it is still checked
票数 4
EN

Stack Overflow用户

发布于 2016-08-17 12:17:26

在jquery中,您应该使用.prop而不是属性。

代码语言:javascript
复制
$('input').prop('checked') //true-false meaning the checkbox is checked or not
票数 0
EN

Stack Overflow用户

发布于 2016-08-17 12:20:30

我们可以使用下面的代码在js中实现

代码语言:javascript
复制
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#site_new_sign_up').click(function(){
    if($('#site_new_sign_up').prop('checked')) {
         console.log('Checked');
    } else {
        console.log('Not Checked');
    }
 })
});
</script>

<body>
  <input type="checkbox" name="site[new_sign_up]" id="site_new_sign_up" value="1">
 </body>
</html>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38996277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档