JQuery使用变量选择单选按钮

时间:2015-08-04 21:44:56

标签: javascript jquery angularjs

我正在尝试使用变量选择一个单选按钮,但是,虽然我可以打印所选的值,但该按钮不会保持选中状态。

此按钮在角度模板中定义如下:

<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中进行硬编码并且保持检查状态。

2 个答案:

答案 0 :(得分:0)

我建议您更多地使用工具潜水角度让您轻松处理这些事情。如果需要跟踪此输入的值,请将其绑定到模型。如果要在复选框更改后处理某些内容,请使用ng-change并将其绑定到函数。

<input type="radio" name="library" style="float:left;" ng-model=libraryModel ng-change="doSomething()" />

请记住,doSomething()需要在范围内,因此在控制器中,您需要将函数定义为$ scope.doSomething()。您的模型也将附加到$ scope对象,因此您将其引用为$ scope.libraryModel。您可以根据控制器中的默认值将模型初始化为true或false,然后任何用户更改都将自动更新此值。

答案 1 :(得分:0)

你正在混合使用jQuery和Angularjs,这并不值得。如果您在项目中使用AngularJs,则只需使用 AngularJS ngModel即可执行以下操作。

<强>控制器

function Controller($scope) {

  //Init data input to value 1
  $scope.data = ['1'];

}

<强> HTML

<input type="radio" name="name" value="1" ng-model="data">
<input type="radio" name="name" value="2" ng-model="data">

此处,我们的$scope.data在我们的控制器中设置为 1 ,因此它将与第一个输入匹配。