-1

ウェブサイトに PHP、Smarty、jQuery を使用しています。ActuMy smarty コード スニペットは次のとおりです。フォームの読み込み時にハイパーリンク(タグ)を非表示にして、条件に応じて表示したいです。参考までに、私のコードを以下に示します: Smarty テンプレートのコードは次のとおりです。

<div class="hor-form w25">
    <ul>
        {assign var='i' value=0}
        {foreach from=$all_subjects item=subjects}
          <li>
             <p class="custom-form"> 
                 <input type="checkbox" name="{$sheet_type}_subject_ids[]" id="{$sheet_type}_subject_{$subjects.subject_id}" value="{$subjects.subject_id}" {if in_array($subjects.subject_id, $subject_ids)}checked="checked"{/if} {if $op=='view'} disabled="disabled" {/if}onChange="get_subject_topics('{$sheet_type}', '{$subjects.subject_id}', '{$pack_id}'); return false;" class="custom-check"  />
                 <label>{$subjects.subject_name}{if in_array($subjects.subject_id, $subject_ids)}<a href="#">View-24</a>{/if}**<a class="view inline" href="#topics_{$subjects.subject_id}">View</a>**</label>
             </p>
            </li>
            {assign var='i' value=$i+1}
        {/foreach}
    </ul>
</div>

フォームの読み込み時に非表示にしたいタグを太字にしました。今私の問題は、対応するチェックボックスがチェックされている場合にのみこのリンクを表示したいということです。それ以外の場合は、非表示のままにしておく必要があります。次の jQuery スクリプトを試しましたが、うまくいきませんでした。この問題を解決するために私を助けてもらえますか? 前もって感謝します。

<script>
$(document).ready(function(){
  $(".view").hide();
  $(".{$sheet_type}_subject_{$subjects.subject_id}").is(":checked")(function(){
    $(".view").show();
  });
});

</script>
4

1 に答える 1

1

チェックしませんでしたが、IDの代わりにクラスで選択しようとしているようです:

クラスセレクター:

 $(".{$sheet_type}_subject_{$subjects.subject_id}").is(":checked")(function(){

ID へ:

 $("#{$sheet_type}_subject_{$subjects.subject_id}").is(":checked")(function(){

さて、あなたのコードをよく見てみると、次のようになっているはずです:

if($("#{$sheet_type}_subject_{$subjects.subject_id}").is(":checked")){
    $(".view").show();
}
于 2013-08-09T10:47:44.097 に答える