jQuery検証を試みています(プラグインなし - 「validate-jsプラグインを使用するだけ」などの回答はしないでください)。
doc ready の「必須フィールド」ごとに、クライアント側のイベント ハンドラーキープレスを配線しています。
$(document).ready(function() {
$('#myform input.required').each(function() {
$(this).keypress(onRequiredFieldKeyPress);
});
});
キーを押すたびにこのイベントを正しく発生させるもの:
function onRequiredFieldKeyPress() {
if ($(this).val().trim() == '') {
$(this).next('em').html('*').show(); // show req field indicator
} else {
$(this).next('em').html('*').hide(); // hide req field indicator
}
}
ただし、 $(this).val() は常に null/空です。私が期待する「HTMLInputElement」を渡しているように見えますが、これを他のjQueryタイプに投影する必要があるようです?
基本的に私はこれをやろうとしています:私が配線したフィールド(すべて入力要素)のキープレスイベントで、その関数を呼び出します。その関数では、そのフィールドの値が '' (空) の場合、必須フィールド インジケーターを表示する隠しフィールドを表示します。
私のロジックの動作は同じであるため、どの実際の要素がキープレスを起動したかはあまり気にしません。実際の値を取得する必要があります。
何か不足していますか?