【问题标题】:AngularJS : Does ng-disabled remove input value?AngularJS:ng-disabled 是否删除输入值?
【发布时间】:2017-02-22 07:53:13
【问题描述】:

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

如果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 会影响输入值,但我想知道这里是否有人知道如何获取所有输入值(如果可能的话)。

【问题讨论】:

    标签: angularjs forms input angularjs-ng-disabled


    【解决方案1】:

    没有。

    禁用输入只是使其不可用不可点击。该值仍然存在。

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


    来自 W3C Input disabling:

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

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

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

    【讨论】:

      【解决方案2】:

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

      ng-disabled="expression"
      

      查看ngDisabled API 以获得更多愿景here。在内部它调用attr.$set(attrName, !!value),它决定是否通过这个方法(Source Code)在后台添加/删除DOM元素的属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-02
        • 1970-01-01
        • 2019-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多