2012-10-19 41 views
-4

我是jQuery和PHP的新手。我嘗試過自己,但不明白如何得到低於輸出。請有人看看這個?請解決這個jQuery問題

我試圖做到這一點:http://jsfiddle.net/exttq/

我的意思是:Form 1和Form之前只被顯示,但我shud打開或只有當我檢查後關閉它們或取消勾選

什麼這個PHP函數代碼錯了?

function eshop_extras_checkout($echo){ 


    $echo .= ' 

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 

    <script> 

    $(".formGroup").hide(); 
    $("#chooseForm input:checkbox").on("change", function() { 
     if($(this).is(":checked")) { 
      $("#" + $(this).val()).show(); 
     } 
     else { 
      $("#" + $(this).val()).hide(); 
     } 
    }); 
    ​ 
</script>'; 

    $echo .= '<fieldset class="eshop eshop_extra">' . "\n"; 


    $echo .= ' <form id="chooseForm"> 
     <input type="checkbox" name="form1" value="form1"> Form1<br> 
     <input type="checkbox" name="form1" value="form2"> Form2<br> 
    </form> 

    <form id="form1" class="formGroup"> 
     <h2>FORM 1</h2> 
     <label>Name</label><input type="text"> <br> 
     <label>Address</label><input type="text"> 
    </form> 

    <form id="form2" class="formGroup"> 
     <h2>FORM 2</h2> 
     <label>Username</label><input type="text"> <br> 
    </form>'; 


    $echo .= '<legend>Articles Order Form</legend>' . "\n"; 



    return $echo; 
} 
+1

什麼是PHP代碼的意思做?它在運行時實際上做了什麼? – halfer

+0

另外,檢查你的Javascript控制檯,看看你是否有任何錯誤。 – halfer

+1

「*這個PHP函數代碼有什麼不對?*」你必須自己指定。如果不知道你想要達到的目標,我們確實無法做到。請更具體一些。 – Lion

回答

1

我觀察到的第一件事是,你的腳本是在你的DOM中的HTML之前..我建議你把在DOM就緒處理程序,然後再試一次..

<script> 
    $(document).ready(function() { 
     $(".formGroup").hide(); 
     $("body").on("change","#chooseForm input:checkbox" ,function() { 
      if($(this).is(":checked")) { 
       $("#" + $(this).val()).show(); 
      } 
      else { 
       $("#" + $(this).val()).hide(); 
      } 
     }); 
    }); 
</script>' 
+0

嘿,我也試過這樣,但不工作...我的意思是:Form1和Form2顯示之前只,但我打開或關閉它們後,只有當我檢查或取消選中框... – Harris

+0

你可以爲這個例子創建一個小提琴.. ?? –

+0

也嘗試委派的事件,因爲我做的複選框... –