angularjs怎么实现checkbox被勾选了才能点击按钮?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angularjs怎么实现checkbox被勾选了才能点击按钮?相关的知识,希望对你有一定的参考价值。
html代码如下:
<input type="email" name="email">
<textarea placeholder="介绍您的个人情况"></textarea>
<input type="checkbox" ng-model="m1">同意试用条款 <button>提交申请</button>
要用纯angularjs实现,不依赖bootstrap,jQuery或其他控件。
<html ng-app="test">
<head>
<title>angularJs-checkbox</title>
</head>
<body>
<div ng-controller="CheckCtrl">
<input type="checkbox" ng-model="chk" ng-click="check(chk)"/>
</div>
<script type="text/javascript" src="../js/angular.min.js"></script>
<script type="text/javascript">
//直接判断checkbox的model即可
var test = angular.module('test', []);
test.controller('CheckCtrl', function($scope)
//设置checkbox默认不选中
$scope.chk = false;
$scope.check = function(val)
!val ? alert('选中') : alert('未选中');
)
</script>
</body>
</html>本回答被提问者和网友采纳
检查是不是使用 jQuery 勾选了复选框:不同的方法? [复制]
【中文标题】检查是不是使用 jQuery 勾选了复选框:不同的方法? [复制]【英文标题】:Checking if a checkbox is ticked using jQuery: different methods? [duplicate]检查是否使用 jQuery 勾选了复选框:不同的方法? [复制] 【发布时间】:2019-12-15 10:55:10 【问题描述】:我需要检查我网页上表单中的文本框是否已被选中。我在我的html代码中实现了文本框:
<input type="checkbox" id="language1" name="language1"
value="Python"> Python
我尝试使用以下代码检查复选框是否已被勾选:
if($('#language1').checked)
// do some stuff
这不起作用 - 网站从未识别出被勾选的框。然后我在 Stack Overflow 上一探究竟,发现了上面的两个替代方案,即:
if($('#language1')[0].checked)
和
if($('#language1').is(':checked'));
这两个替代方案中的每一个都有效,但我最初的实现没有。我不明白为什么会这样 - 我认为所有三个选项基本上都应该做同样的事情?热衷于深入了解这一点,因此将不胜感激。
【问题讨论】:
$('#language1').is(':checked')。见:checked Selector 【参考方案1】:我认为这三个选项本质上应该做同样的事情?
没有。因为checked
属性是输入元素的属性。
$(selector)
返回一个包含元素但不是元素本身的 jQuery 对象,并且 jQuery 对象没有 checked
属性
使用 $(selector)[0]
返回 jQuery 对象中的第一个匹配元素...该属性所在的位置
【讨论】:
【参考方案2】:第一个示例返回与 CSS 选择器匹配的所有元素的列表。在这种情况下,该列表只有一个元素,但与该元素不同。这就是为什么您需要在第二个示例中使用[0]
。
(或者,您可以使用 jQuery 的内置 get() 方法来完成同样的事情。)
function print()
if ($('#language1').get(0).checked)
console.log("Yes");
else
console.log("No");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="language1" name="language1"
value="Python"> Python
<br>
<button onclick="print()">Click me</button>
【讨论】:
【参考方案3】:因为 $('#language1') 代表所有适合选择器 #language1 的 HTML 元素的 jQuery 集合,而不是元素本身。 $('#language1')[0] 依次代表该集合中的第一个 HTML 元素。 jQuery在该集合上提供了一个接口与其中的html元素进行交互,并且该接口没有checked属性,因为它太特定于仅复选框,并且是属性,并且不能通过集合接口代理。 .is(':checked')) 是一个方法,如果选择器在其中提供了返回 true ':checked' 适用于集合中的任何(或所有,此处不确定)元素,。这是 JQuery 开发人员如何检查集合中的元素是否已检查标志的方式
【讨论】:
以上是关于angularjs怎么实现checkbox被勾选了才能点击按钮?的主要内容,如果未能解决你的问题,请参考以下文章