2011-01-15 9 views
2

入力値= 'CP'の場合はdivを表示します。jQuery:ユーザーの操作なしで値がtrueの場合

今、これは私のコードです:彼らは入力を変更した場合

$(".register-type").change(function(){ 
    var value = $(this).val(); 
    if(value == 'CP'){ 
    $('.cp-show').show(); 

これは正常に動作しますが、物事が偽検証し、ページをリロード取得した場合、この入力は、「CP」はまだですが、div要素のdoesn show ...

jQueryがページの読み込みに設定されているかどうかを確認する方法がありますか?

答えて

1

読み込み時の確認にdocument.readyを使用してください。

var register = $(".register-type")[0]; 

function show_cp() { 
    if(register.value == 'CP') { 
     $('.cp-show').show(); 
    } 
} 

reg_type.change(show_cp); // when the input changes 
$(document).ready(show_cp); // when the page is loaded 
+0

$(これは)ときに正しいことではないだろう.ready()によって呼び出されます – Dolbz

+0

@Dolbz - はい、修正されました。 – galambalazs

+0

短いバージョン: 'var chkVal = function(e){if($(this).val()== 'CP')$( '.cp-show')。show();} $( '。register- type ')。change(chkVal).each(chkVal); ' –

0

はい、あなたの '文書準備' 関数に追加します。それを最初にトリガーないのはなぜ

$(document).ready(function() { 
    if($(".register-type").val() == 'CP'){ 
     $('.cp-show').show(); 
    } 
}); 
1

..

$(".register-type") 
    .change(function(){ 
     var value = this.value; // changeed the .val() since it is not needed here. 
     if(value == 'CP'){ 
     $('.cp-show').show(); 
    }) 
    .trigger('change'); 
+0

'.trigger()'はこれまで見たことがありませんか?あなたはそれを説明してもらえますか? –

+0

* 'trigger()':指定されたイベントタイプの一致する要素に付加されたすべてのハンドラとビヘイビアを実行します。いいアイデア、ガービー! +1 – galambalazs

+0

@ケビン、これはjQueryメソッドです(http://api.jquery.com/trigger/)。選択した要素に対して指定したイベントを呼び出します(*トリガー*)。 –

関連する問題