2016-06-24 3 views
1

私は、ユーザーがそのフィールドに値を追加すると、各フィールドの上に小さいラベルが表示されるフォームを持っています。フォームフィールドにページの読み込み時に値が設定されているかどうかを確認し、そうであればラベルを表示しますか?

これは、一部のフィールドが事前設定されている場合があります。

フォームフィールドに値がある場合、ページの読み込みを確認するにはどうすればよいですか?ページのロードの

$('.form-control').blur(function() { 
    if($(this).val()) { 
     $(this).prev().show(); 
    } 
}); 

答えて

0

はこれを試してください:文書で

$('.form-control').each(function() { 
if($(this).val()) { 
    $(this).prev().show(); 
} 
}); 
+0

これは、トリックをやったようですね、ありがとう! – ade123

0
$(document).ready(function(){ 
    $('.form-control').each(function(){ 
     if($(this).val() != ''){ 
      $(this).prev().show(); 
     } 
    });   
}); 

準備ができて、各.form-のフィールドに値を持っていたら

は、ここで表示するラベルの私の現在のコードですコントロールで、入力の値が空白でない場合は、ラベルを表示するコードを指定します。

+0

これに感謝しますが、Anujの方法はそのトリックを行ったようです!この方法が優れているのか、まったく違うのかはわかりません... – ade123

0

使用するfocusoutイベントは多大な過労ではないでしょうか?

<script type="text/javascript"> 
    (function ($) { 
     $(document).ready(function (e) { 
        // ALTHOUGH BLUR IS OK, ONE COULD SIMPLY BIND THE .form-control CLASSES TO THE focusout EVENT 
        // THIS ENSURES THAT THERE IS A HIGHER LIKELIHOOD THAT THE FIELD IN QUESTION ONCE HAD FOCUS 
        // WHICH MAY IMPLY THAT THE USER ALSO INTERACTED WITH THE FIELD IN SOME WAY... 
       $('.form-control').each(function(elem){ 
        var objElem = $(this); 
        objElem.focusout(function(evt) { 
         if ($(this).val()) { 
          // NOW, YOU SHOULD KNOW WHICH METHOD TO USE TO TRAVERSE THE DOM 
          // AND GET AT THE LABEL.... 
          // IN YOUR CASE IT SEEMS TO BE THE PREVIOUS ELEMENT BEFORE THE FORM-FIELD. 
          $(this).prev().show(); 
         } 
        }); 
       }); 
     }); 
    })(jQuery); 

    </script> 
関連する問題