2009-08-03 11 views
0

のお詫びになります。基本的な質問 - JavaScriptのクラッシュコースが登場です!フォームの投稿後に条件付きでjavascript関数を設定する

function toggle(request) 

機能は、単に目に見える/見えないようDIVを切り替えます。しかし、その前に、私はjavascriptの機能を持っています。私は次のようにのonclickイベントを使用して、この機能から、私が望む行動を誘発することができます。

<input type="radio" name="complete" value="true" id="complete_yes" 
onclick="toggle('true');"/> 

これはうまく動作しますが、フォームを掲示した後、一定の条件の下で、私はラジオボタンが自動的に選択されるようにしたいとjavacript関数を自動的に設定する:

toggle('true') 

... divの内容を明らかにする。私は "チェック"の部分が働いているが、どのように条件付きでtrueに設定されるjavascript関数を取得するのですか?テストについて、あなたのJS toggle機能では、可視化されるのdivがいる場合は、あなたの入力の状​​態を「確認」に依存せずに何

<input type="radio" name="complete" value="true" {if $data.complete == true}checked{/if} id="complete_yes" 
onclick="toggle('true');"/> 
+0

これを読んで、「div」がここに公開されているのは私だけだと思います! – cw84

答えて

2

ではなく、jQueryのを学ぶことを決めました!以下の構文は望ましい結果を達成し、非常に保守的です!

$(document).ready(function() { 
$('#complete_yes').toggle(function() { 
    $('#repair_complete').removeClass('hidden'); 
}, function() { 
    $('#repair_complete').addClass('hidden'); 
}); 
}); 
1

?ビットこのような

何か、私は推測する:

function toggle() 
{ 
    if (document.getElementById('YOUR_INPUT_ID').checked) { 
     document.getElementById('YOUR_DIV_ID').style.display = 'block'; 
    } else { 
     document.getElementById('YOUR_DIV_ID').style.display = 'none'; 
    } 
} 

はAbsolutlyテストされていませんが、私はあなたが」と考え、入力ならば(私が知っていることはありません
:-)アイデアを得ると思いますonclickの上のJS関数が呼び出される前または後に「確認...だから、実際には 『block』と 『none』の設定を反転させる必要がある場合があります)

そして、あなたはいくつかの入力/ divを持っている場合は、あなたが渡すことができますそれらのidをパラメータとして、toggle関数...

こうして、その関数の「初期化」を心配する必要はありません。 div要素が表示されている場合にもこのようなもので、テストすることができ


注:

function toggle() 
{ 
    if (document.getElementById('YOUR_DIV_ID').style.display == 'none') { 
     document.getElementById('YOUR_DIV_ID').style.display = 'block'; 
    } else { 
     document.getElementById('YOUR_DIV_ID').style.display = 'none'; 
    } 
} 

(いずれかテストしていません)

そうすれば、あなたの関数だろう本当にトグル divが呼び出されるたびに表示されます。

+0

おかげさま - 有望な音、明日テストします! – cw84

+0

クリックイベントが発生するまで、.checkedプロパティが変更されないことが判明している場合は、setTimeout(funciton(){if .... else ...}のif文全体をラッピングしてみてください。}、100); - チェックされたプロパティをクリックした後、ちょっとチェックしますか? – gnarf

+0

私はこの不幸なことに大成功を収めているわけではありません。あなたの最初の例である「YOUR_INPUT_ID」は、この「complete_yes」ですか?私のコードスニペットを見てください。 – cw84

0

はなぜのような何かをしない:

{if $data.complete == true} 
<script type="text/javascript">toggle('true');</script> 
{/if} 
関連する問題