2016-10-02 12 views
1

私は2つの入力を持っています:最初はXファイルのアップロードです。 2番目はURLの入力Yです。jQuery - 2つの入力の単純な検証

これまでのところ、Yが有効かどうかをチェックしてXに必要な属性を削除するコードがあります。それ以外の場合は、Xが必要になります。

$(Y).blur(function(){ 
    if ($(this).is(':valid') == true) { 
     $(X).removeAttr('required') 
    } else if ($(this).is(':valid') == false) { 
     $(X).attr('required'); 
    } 
}); 

何らかの理由でこのコードは、入力Yが有効な場合に属性を削除する場合に機能します。ユーザーが後悔してYを空白のままにしたいとしますが、Xに必要な属性を返しません。

可能な限り簡単に説明を続けるようにしました。誤解があれば、私はこの質問を編集してより明確にしようとします。

答えて

0

最も簡単な方法は次のとおり

$(Y).blur(function(){ 
if ($(this).is(':valid') == true && $(this).val() != '') { 
    $(X).removeAttr('required') 
} else if ($(this).is(':valid') == false || $(this).val() == '') { 
    $(X).attr('required'); 
} 

})。

この場合、ユーザーがコンテンツを削除すると、必要な属性が返されます(トリム関数を追加するのを忘れてしまいました。サンプルで使用しませんでした)。

このロジックを検証機能にカプセル化することをお勧めします。私もぼかしイベント(使い勝手が悪い)のようにはいけない、私はフィールドの検証のためのonchangeイベントをお勧めします。

関連する問題