入力がフォーカスされたときに、入力が無効である場合に警告を表示したいと考えています。メッセージはオブザーバブルにあります。
したがって、このコードが与えられた場合、それにバインドされたオブザーバブルを見つけるにはどうすればよいでしょうか。
$(document).on("focus", "input.invalid", function(){
console.log("ahaaaa!");
//your code here
//dig out observable from this and find the message
//create element with class invalid-message and place it next to this
}).on("blur", function(){
$(".invalid-message").remove();
});
ノックアウト検証を使用していますが、フィールドにフォーカスがある場合にのみエラー メッセージを表示したいと考えています。他の提案は大歓迎です。
編集: dataFor を使用している場合:
$(document).on("focus", "input.invalid", function(){
console.log(this);
console.log(ko.dataFor(this));
...
コンソールでこれを取得します:
下線が引かれたオブザーバブルは、私が求めているものです。
EDIT2:私はこのようにそれを回避しています:
$(document).on("focus", "input.invalid", function(){
var fieldName = $(this).attr("name");
var errorMessage = ko.dataFor(this)[fieldName].error;
...