0

标题说明了一切……我一直在阅读 Stackoverflow 上的几篇文章以及文档,但我还没有找到令人满意的解释。

如果ng-disabled被激活,标签内的输入值是否被移除?

让我用一个例子来说明。

<form method="POST" name="form" action="">
    <select ng-model="model[1]"  
            ng-options="i for i in fc.items[1]" 
            ng-disabled="true">
    </select>
    <select ng-model="model[2]" 
            ng-options="i for i in fc.items[2]" 
            ng-disabled="false">
    </select>
    <input type="submit" value="Next"/>
</form>

输入值为results[2]:number:1。(number:1是预期的结果)。

当我删除ng-disabled时,结果是results[1]:number:1 results[2]:number:1

我即将得出结论ng-disabled对输入值的影响,但我想知道这里是否有人知道如何获取所有输入值(如果可能的话)。

4

2 回答 2

3

不。

禁用输入只会使其无法使用无法点击。价值依然存在。

您的值未发送,因为不会提交a 中的禁用元素。form


从 W3C输入禁用

禁用的输入元素不可用且不可点击。

可以设置 disabled 属性以阻止用户使用该元素,直到满足某些其他条件(例如选择复选框等)。然后,JavaScript 可以删除禁用的值,并使元素可用。

提示:表单中禁用的输入元素将不会被提交。

于 2017-02-22T07:58:54.173 回答
1

不,它根本不会删除输入值。它只是使输入无法访问。指令只是根据传递给它的表达式ng-disabled添加/删除属性。disabled

ng-disabled="expression"

在此处查看ngDisabledAPI 以了解更多信息。它在内部调用,它决定是否通过此方法(源代码)从幕后的 DOM 元素中添加/删除属性。attr.$set(attrName, !!value)

于 2017-02-22T08:19:34.990 回答