2012-10-19 119 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

也尝试委派的事件,因为我做的复选框... –