2010-12-13 7 views
1

私はSELECTドロップダウンリストの値に基づいて、DIVにslideDownを実行するには、次のjQueryの機能を使用します。jQueryのSELECT変更トリガ

$(function() 
{ 
    $('#show-options').change(function(){ 
     if($(this).val() != '') 
     { 
      $('#' + $(this).val()).slideDown(); 
     } 
    }); 
}); 

はHTML:今すぐ

<select id="show-options"> 
    <option value="">Select an Option</option> 
    <option value="vehicle-type">Vehicle Type</option> 
    <option value="vehicle-colour">Vehicle Colour</option> 
</select> 

<div id="vehicle-type" style="display: none;"> 
    <!--form elements in here--> 
</div> 

<div id="vehicle-colour" style="display: none;"> 
    <!--form elements in here--> 
</div> 

フォーム提出前に表示されたDIVは自動的に表示する必要があります。私はPHPのGET変数を調べることができますが、私は '変更'機能を模倣するjQueryコードが必要です。これはトリガーやバインドと関係があると思います。

答えて

4

私はこれを実際に多くしています。

function showByVal(val) { 
    $('#' + val).slideDown(); 
} 

$(function() 
{ 
    $('#show-options').change(function(){ 
     if($(this).val() != '') 
     { 
      showByVal($(this).val()); 
     } 
    }); 

    showByVal('<? echo $_GET["PreviousVal"]; ?>'); 
}); 

を限り値は(あなたのPHPコードによって)前もって設定されているとして、それが結合した後、イベントが発生します:私が見つけた最も簡単な方法は、ちょうどそのようにそれを結合した後にイベントをトリガすることです初期表示を設定します。

+0

にPHPで選択した属性を記述する必要がありますもちろんの

$("#" + $("#show-options :selected").val()).slideDown(); 

をセクション?それぞれの選択を実行し、選択した値として設定した後に変更イベントをトリガーする必要があります。コードはトグルを行うようには見えず、選択されている各セクションの公開だけで、複数のものを同時に開くことができます。 – tvanfosson

+0

@tvanfosson - これは本当ですが、それはトグルするようには見えませんが、質問からOPが同じページまたは別のページにポストバックしているかどうかは100%明確ではありません。彼が同じページに投稿していて、ポスト/リフレッシュ後に表示が一貫する必要がある場合、PHPコードはGET変数に基づいて選択された '

+0

これは、GETを使用した検索フォーム用です。それは同じページに提出する。複数のDIVを表示する必要がある可能性がありますが、PHPコードのGET変数を確認できるので問題はありません。 – GSTAR

0

フォーム提出に応じてこれを行う場合は、表示されたもののページをレンダリングするときにDIVを表示しないでください(つまり、スタイルを「display:none;」にしないでください)。隠れたフィールドを使う方法と、選択されたセクションにアイテムが表示されているセクションのみを表示するかのどちらかを行う必要があります。どちらの方法でも、フォームから取得した入力を使用して、デフォルトの可視性が表示されるように設定されているセクションを判断できます。

0

私はこのような何かをする必要があるときはいつでも、$('#ele').trigger('change')は特別なことをする必要がないので、ページが読み込まれたときに選択リストの変更イベントがトリガーされ、ページがロードされると、すでに定義されている変更ハンドラが呼び出されます。

1

この試してください:あなたは、これは、ユーザが複数のを示している場合に動作するように起こっているか右のオプション

関連する問題