2017-02-22 3 views
0

タイトルはすべてです... 私はStackoverflowとthe documentationでいくつかの記事を読んできましたが、満足のいく説明はまだ見つかりませんでした。AngularJS:ng-disabledは入力値を削除しますか?

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:1results[2]:number:1になります。

ng-disabledは入力値に影響しますが、すべての入力値を取得する方法を知っている人がいれば知りたいと思います。

答えて

3

それ使用不能unclickableする入力を無効にします。値は依然として維持されます。

無効な要素がformに送信されないため、値が送信されません。 W3C Input disablingから


無効入力要素は使用不可能と非クリッカブルです。

無効な属性は、 などのチェックボックスを選択するなどの条件が満たされるまでユーザーが 要素を使用しないように設定できます。その後、JavaScriptは 無効な値を削除し、その要素を使用可能にすることができます。

ヒント:フォームの無効な入力要素は送信されません。

1

いいえ、入力値はまったく削除されません。それは入力をアクセス不能にするだけです。 ng-disabledディレクティブは、それに渡された式に基づいてdisabled属性を追加/削除するだけです。

ng-disabled="expression" 

は、より多くのビジョンhereためngDisabled APIを見てください。内部的にはattr.$set(attrName, !!value)が呼び出され、このメソッド(Source Code)のシーンの背後にあるDOM要素から属性を追加/削除するかどうかを決定します。

関連する問題