2011-04-20 32 views
0

目前,这是切换,但当个人“教授”或“课程”单选按钮被选中时,它不会切换正确的字段。任何人都有一些见解,为什么这不工作?为什么不是这个jQuery切换到无线电选择?

目前其展示的所有字段时,选择了“课程”广播和选择的教授,当他们都赶不走 img1 img2

谢谢!

<!--<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>--> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $(':radio[value="Coursee"]').click(function() { 
     $('#courseFields').toggle(':not(:radio[value="Professor"]:checked)'); 
    }); 
    $(':radio[value="Professor"]').click(function() { 
     $('#ProfFields').toggle(':not(:radio[value="Coursee"]:checked)'); 
    }); 
}); 
</script> 
<?php 
require_once('inc/dbc1.php'); 
$pdo = new PDO('mysql:host=ureviewdu.db.6511651.hostedresource.com;dbname=ureviewdu', $username, $password); 
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$sth = $pdo->prepare(' 
    SELECT name 
    FROM Department 
    ;'); 
$sth->execute(array()); 
?> 
<div id="popup_name" class="popup_block"> 
    <h2 style="padding:0; margin:0;">Add a:</h2><br> 
    <form action="inc/add_p_c_validate.php" method="post" id="addition"> 
     Professor<input type="radio" name="addType" value="Professor" /> 
     &nbsp;&nbsp;Course<input type="radio" name="addType" value="Coursee" /> 

     <div id="courseFields"> 
      <br>Course: <input type="text" name="name" style="width:385px;" /><br> 
      Department: <select name="deptName" id="deptName" style="width:350px;"> 
            <?php while($row = $sth->fetch(PDO::FETCH_ASSOC)) {echo "<option>".$row['name']." "."</option>";} ?></select> 
      Email: <input type="text" name="email" class="l" /> 
     </div><!--/courseFields--> 
     <div id="ProfFields"> 
     <br>First Name: <input type="text" name="name" style="width:385px;" /><br> 
     <br>Last Name: <input type="text" name="name" style="width:385px;" /><br> 
      Department: <select name="deptName" id="deptName" style="width:350px;"> 
     <?php while($row = $sth->fetch(PDO::FETCH_ASSOC)) {echo "<option>".$row['name']." "."</option>";} ?></select> 
     </div><!--/ProfFields--> 
     <input type="submit" name="submit" /> 
    </form> 
</div><!--popup_name--> 
+0

因为你有一个名称为“的addType”两个单选按钮。使用下面的代码将它们分开:radio [value =“Professor”]选择器而不是:radio [name =“addType”]用于第一项,而“Course”用于第二项。 – 2011-04-20 02:36:17

+0

你可以请出示一些代码吗? – Jshee 2011-04-20 02:38:06

+0

我已更新我的代码以反映您的想法,但它仍然没有区分课程和教授,其中一个作品,另一个没有。请介意显示一些代码? – Jshee 2011-04-20 02:45:29

回答

0

我认为你正在尝试使用.toggle(showOrHide)切换的版本,在这种情况下,你应该通过一个布尔值显示/隐藏的元素,因此你需要使用。长度> 0 $ ( ':否(:无线电[值= “教授”]:选中)')或$( ':否(:无线电[值= “场”]:选中)')

尝试这种情况:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(':radio[name="addType"]').click(function() { 
      $('#courseFields').toggle($(':radio[value="Professor"]:checked').length == 0); 
      $('#ProfFields').toggle($(':radio[value="Course"]:checked').length == 0); 
     }); 
    }); 
    </script> 
+0

Cyber​​nate - 这实际上杀死了两个选项。它显示所有字段不是,只要你点击一个单选按钮 - 它隐藏了一切。 – Jshee 2011-04-20 02:37:28

+0

@ user700070:更新了帖子。你可以现在检查吗? – Chandu 2011-04-20 02:39:26

0

首先,您需要隐藏两个容器DIV:

$("#ProfFields,#courseFields").hide(); 

然后做什么,你已经有一个简化版本:

$("input:radio[name='addType']").click(function(){ 
     var profFields = ($(this).val()=="Professor"); 
     $("#ProfFields").toggle(profFields); 
     $("#courseFields").toggle(!profFields); 
}); 

这里是一个活生生的例子:http://jsfiddle.net/WMvtG/

相关问题