私はExtJSスクリプトに取り組んでいて、ComboBoxを持っています
allowBlank = false
と
forceSelection = true
リストに、表示テキストを持つデフォルト メッセージとして機能する項目があります。
Please select...
そして価値がない
''
ComboBox で検証を実行すると、trueが返され ます。理由がわかりません。ドキュメントによると、
allowBlank = false
検証では、value.length > 0 のチェックが強制されるため、JS コンソールで独自のテストを行いました。
>> if (thisForm.controlManager.controlArray[2].allowBlanks) { if (thisForm.controlManager.controlArray[2].length >= 0) { true; } false; } else { if (thisForm.controlManager.controlArray[2].length > 0) { true; } false; }
そしてそれはfalseを返した ので、validateメソッドのバグかもしれないと思ったので、これをやってみました
>> thisForm.controlManager.controlArray[2].validateValue('')
結果としてこれが真になりました
私が間違っている可能性があること、または値が '' のときにこの検証が false を返すように設定する必要があるかどうかについて、誰もが何らかの考えを持っています。
PS。私もこれを試しました
>> thisForm.controlManager.controlArray[2].validateValue(' ')
falseである正しい結果を得ました。通常、検証で '' と ' ' が同じ値を返すと予想していたので、これは私を非常に混乱させました。
値を '' に設定することで回避できることはわかっていますが、むしろ '' で動作させたいと考えています。
ありがとう