通过javascript

时间:2017-08-29 21:07:44

标签: javascript html angularjs checkbox

我有一个html页面,点击一个复选框会导致页面的新部分变得可见。 HTML看起来像这样:

            <input id="formcheck" ng-model="collapseform" type="checkbox">Fill in the Test Form         
            <div id="mainformdiv" class="wizard-div" ng-show="collapseform">                
                    <div>                           
                        <div class="main-block">    
                                ...and so on
                        </div>
                    </div>
            </div>

这部分工作正常 - 默认情况下,页面的一部分是隐藏的,当我选中复选框时,会显示页面的其余部分。当我取消选择它时,页面的其余部分将再次隐藏。

在同一页面上还有一个表,当你在该表中选择一个节点时,它会调用一个控制器函数,该函数会导致设置一些内部值 - 这部分也可以工作,所以控制器似乎已经设置好了正确启动,可以调用所有功能。

我看到的问题是:我想在选择表节点时向控制器函数添加一点,除了设置内部值之外,我想要它做的是(它正确地执行),也选中复选框,并使页面的隐藏部分显示为响应。我想如果我通过javascript检查了复选框就可以完成此操作,所以我将其添加到内部值设置功能中:

        if (document.getElementById("formcheck").checked == false) {
            document.getElementById("formcheck").checked = true;
        }

这样的工作 - 当调用那段代码时,复选框会被检查掉,但是,当我用鼠标单击复选框时,它似乎不会触发ng-show,因此隐藏的部分页面的页面不可见。为了使这项工作还有其他我需要做的事情吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您应该能够更改模型的值。由于NgModel提供双向绑定,因此它也会监视$scope变量。

例如做

$scope.collapseform = false

而不是

if (document.getElementById("formcheck").checked == false) {
    document.getElementById("formcheck").checked = true;
}