JQuery使用变量选择单选按钮
JQuery selecting radio button using a variable
我试图使用变量选择一个单选按钮,但是,虽然我可以打印选中的值,但按钮不保持选中。
这个按钮在angular模板中定义如下:
<a ng-click="selectNode($event, node)">
<input type="radio" name="library" style="float:left;" id="id-{{n}}" />
</a>
其中id是GUID,所以绝对是唯一的。
然后,因为当按钮被选中时调用的是角点击事件,所以我在selectNode中调用这段代码:
context.selectedNodes = [node];
$scope.selectedNode = node.$model.name;
var id = '#id-' + node.$model.id;
//console.log(typeof id);
//console.log(id);
$(id).prop("checked", true);
alert($("[name=library]:checked").val())
理论上应该检查单选按钮。然而,它检查了一会儿(当我调用警报时检查),然后似乎消失了。然而,我能够硬编码在一个id,它保持检查。
我建议您深入研究angular提供的工具,以便简单地处理这些事情。如果您需要跟踪该输入的值,请将其绑定到一个模型。如果希望在复选框更改后处理某些内容,请使用ng-change并将其绑定到一个函数。
<input type="radio" name="library" style="float:left;" ng-model=libraryModel ng-change="doSomething()" />
记住doSomething()需要在作用域中,所以在你的控制器中,你需要将函数定义为$scope.doSomething()。您的模型也将附加到$scope对象上,因此您可以将其引用为$scope. librarymodel。您可以根据需要将模型初始化为控制器中的默认值true或false,然后任何用户更改都将自动更新此值。
你把jQuery和Angularjs混在一起了,这是不值得的。如果你在你的项目中使用AngularJS,你可以使用AngularJS ngModel
。
function Controller($scope) {
//Init data input to value 1
$scope.data = ['1'];
}