【问题标题】:will ng disabled prevent submitting form elementsng disabled 会阻止提交表单元素吗
【发布时间】:2015-02-20 07:54:04
【问题描述】:

正如 HTML 表单中所说,所有禁用的表单文件都将被阻止在表单提交上提交。

在 Angular JS 中,如果我对输入字段使用 ng-disable,那么如果我这样做,该字段是否会真正提交

<form>
 <input type="text" ng-disabled="true" name="foo">
 <button type="submit">submit</button>
</form>

如果不是,为什么?感觉很傻,但对这个主题有点困惑

【问题讨论】:

  • 我不知道..您是在问问题还是在回答自己!
  • 编辑了我的问题,我想我现在已经表达清楚了!!

标签: html angularjs forms


【解决方案1】:

如果ng-disabled 的值是真值,则库会在元素上设置布尔值disabled 属性。我相信official documentation 在这个问题上非常清楚。我提到的部分:

HTML 规范不要求浏览器保留布尔属性的值,例如禁用。 (它们的存在意味着真,它们不存在意味着假。)如果我们将 Angular 插值表达式放入这样的属性中,那么当浏览器删除该属性时,绑定信息将丢失。 ngDisabled 指令为 disabled 属性解决了这个问题。这个补充指令不会被浏览器删除,因此提供了一个永久可靠的地方来存储绑定信息。

【讨论】:

    【解决方案2】:

    你的例子

    <form>
     <input type="text" ng-disabled="true" name="foo">
     <button type="submit">submit</button>
    </form>
    

    您将ng-disabled 设置为true,因此它将disabled 属性添加到表单中,如果您提交表单,如HTML 表单中所述,所有禁用的表单文件都将被阻止提交表单提交,所以

    1. 使用普通表单提交,即以html方式type="submit",如果ng-disabled内的值设置为false或返回false,输入值将仅通过表单提交。

    2. 在 angularjs ng-submit 中也会发生同样的事情,即发布表单只是提交表单后可以调用方法。

    【讨论】:

    • 我可以为您的第 2 点提供任何参考吗?第一点在 HTML 表单中很明显。无论如何,谢谢。
    • 澄清我的第 2 点:Angular 在提交表单时没有开箱即用。提交时适用于 html 表单的内容也适用于 ng submit。只是 disabled 属性是根据 ngDisabled 的值从元素中动态添加或删除的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多