0

検証 ( jsviews.com/#samplesのコードを使用) と jQuery UI オートコンプリートで jsViews を使用しているときに問題が発生
しました。入力されたテキストを辞書に基づいて GUID に変換するコンバーター (convertBack) がフィールドにあります。フィールドが空または無効な場合は null を返します。

問題は、jsViews が 1 つの null 値から別の null 値への更新 (つまり、空白から無効、またはその逆) に気付かないことです。refreshValidates()検証タグの呼び出しを DOM に手動で追加してこれを修正しようとしましたonChangeが、入力された無効な値はすべて削除されます。

質問: jsViews でネイティブに再検証を行う方法はありますか?

jsViews 検証コードを変更して、表示された値をチェックできるようにし
ましonAfterLinknull

 (...)
    tag.validate(tagCtx.args[0], tag.linkedElem.val()); // Validate initial data
4

1 に答える 1

1

tag.linkedElem双方向のデータ バインディング (および検証) を行う HTML 要素です。

したがって、入力要素の現在の値を取得したいだけであれば、はい、それで問題ありませんtag.linkedElem.val()

以下のコメントに続いて、追加の応答が追加されました。

あなたのjsfiddleを見る:http://jsfiddle.net/w43hD/1/

使用している

data-link="{validate DictionaryValue inDictionary='dictionary' convert='fromGuid' convertBack='toGuid'}"

DictionaryValueこれは、変更にバインドされているときに検証をトリガーします。ただし、無効なユーザー エントリ文字列と空の文字列の両方を null の同じ DictionaryValue にマッピングしています。もちろん、無効な文字列から空の文字列に切り替えても、検証はトリガーされません。

コンバーターを変更してgetKey、空の文字列を "" などの null 以外にマップすると、機能します。更新されたバージョンを参照してください: http://jsfiddle.net/w43hD/2/

于 2013-12-01T23:50:51.420 に答える