javascript - 如何将隐藏表单元素值设置为单击元素的数据属性值

标签 javascript angularjs

我想使用 angularJS 将单击的 html 元素的数据属性值设置为隐藏表单字段的值。

我有一系列缩略图来表示表单中的选项,单击其中一个会将隐藏表单字段的值设置为其 data-val="something"值,本质上是复制选择框的功能。

在 Jquery 中我可以这样做:

<script type="text/javascript">
    $(function(){
        $('#fakeselect li a').click(function(){
            event.preventDefault();
            var val = $(this).data('val');
            $('#hiddeninput').val(val);
        });
    });
</script>

<ul id="fakeselect">
        <li><a href="#" data-val=1><img....></a></li>
        <li><a href="#" data-val=2><img....></a></li>
        <li><a href="#" data-val=3><img....></a></li>
</ul>

<input type="text" name="hidden" id="hiddeninput" value="">

但是我想对 angularJS 做同样的事情,因为它提供了一些其他非常有用的功能。

AngularJS 的主页展示了如何做几乎相反的事情(将元素属性绑定(bind)到表单字段),但我无法完全弄清楚如何以相反的方式做到这一点。

最佳答案

尝试类似的事情:

<ul id="fakeselect">
    <li><a ng-click="form.val=1"><img....></a></li>
    <li><a ng-click="form.val=2"><img....></a></li>
    ...
</ul>

<input type="text" name="hidden" id="hiddeninput" ng-model="form.val" />

在 Controller 中(确保它适用于 <ul><input> ):

$scope.form = {
    val: null // OR ANY OTHER INITIAL VALUE
};

关于javascript - 如何将隐藏表单元素值设置为单击元素的数据属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19054671/

相关文章:

用于提取字符串特定部分的 Javascript 正则表达式

javascript - Karma AngularJS Bootstrap 和窗口变量

javascript - AngularJS 中的 $resource 关系

angularjs - Protractor :don't wait for elements to appears in Dom

javascript - 想知道如何在 jquery 或 JS 中实现类似于 *ngFor/ng-repeat 的东西

javascript - 如何使用 underscore.js 或 jQuery 检查对象是否有空数组

javascript - Laravel Pusher 前端未接收数据

python - 在 django 和 angular 中提交表单后停留在同一个选项卡上

javascript - 如何在 chrome 控制台中递归探索数组

javascript - JSLint 错误 : Unexpected 'this'