AngularJS : ng-disabled 是否删除输入值?
AngularJS : Does ng-disabled remove input value?
标题说明了一切...
我一直在阅读 Whosebug 和 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
影响输入值的结论,但我想知道这里是否有人知道如何获取所有输入值(如果可能的话)。
没有
禁用输入只是使其不可用和不可点击。该值仍然存在。
您的值未发送,因为 form
中禁用的元素将不会提交。
来自 W3C Input disabling:
A disabled input element is unusable and un-clickable.
The disabled attribute can be set to keep a user from using the
element until some other condition has been met (like
selecting a checkbox, etc.). Then, a JavaScript could remove the
disabled value, and make the element usable.
Tip: Disabled input elements in a form will not be submitted.
不,它根本不删除输入值。它只是使输入无法访问。 ng-disabled
指令只是 add/remove disabled
基于传递给它的表达式的属性。
ng-disabled="expression"
看ngDisabled
API 更远见here. Internally it calls attr.$set(attrName, !!value)
, which decides wheather to add/remove attribute from DOM element behind the scene from this method(Source Code).
标题说明了一切... 我一直在阅读 Whosebug 和 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
影响输入值的结论,但我想知道这里是否有人知道如何获取所有输入值(如果可能的话)。
没有
禁用输入只是使其不可用和不可点击。该值仍然存在。
您的值未发送,因为 form
中禁用的元素将不会提交。
来自 W3C Input disabling:
A disabled input element is unusable and un-clickable.
The disabled attribute can be set to keep a user from using the element until some other condition has been met (like selecting a checkbox, etc.). Then, a JavaScript could remove the disabled value, and make the element usable.
Tip: Disabled input elements in a form will not be submitted.
不,它根本不删除输入值。它只是使输入无法访问。 ng-disabled
指令只是 add/remove disabled
基于传递给它的表达式的属性。
ng-disabled="expression"
看ngDisabled
API 更远见here. Internally it calls attr.$set(attrName, !!value)
, which decides wheather to add/remove attribute from DOM element behind the scene from this method(Source Code).