Javascript 基于单选按钮选择显示/隐藏div

Javascript 基于单选按钮选择显示/隐藏div,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,所以我在网上找到了其他答案,但我很想知道为什么我的答案不是另一个有效的答案。单击单选按钮时,不显示/消失div。我有显示:默认为无。(我也试着用CSS代替JS,但也没用) index.php文件: if(isset($_POST['pickupDelivery'])){ if($_POST['pickupDelivery'] == "pickup"){ ?> <script type="text/javascript">

所以我在网上找到了其他答案,但我很想知道为什么我的答案不是另一个有效的答案。单击单选按钮时,不显示/消失div。我有显示:默认为无。(我也试着用CSS代替JS,但也没用)

index.php文件:

if(isset($_POST['pickupDelivery'])){
    if($_POST['pickupDelivery'] == "pickup"){
        ?>
        <script type="text/javascript">
            document.getElementById("pickupName").style.display="block";
            document.getElementById("desiredPickup").style.display="block";
            document.getElementById("deliveryAddress").style.display="none";
            document.getElementById("desiredDelivery").style.display="none";
        </script>
        <style>
            #pickupName, #desiredPickup {
                display: block; 
            }
            #deliveryAddress, #desiredDelivery {
                display: none;
            }
        </style>    
        <?php
    } else if($_POST['pickupDelivery'] == "delivery") { 
        ?>
        <script type="text/javascript">
            document.getElementById("pickupName").style.display="none";
            document.getElementById("desiredPickup").style.display="none";
            document.getElementById("deliveryAddress").style.display="block";
            document.getElementById("desiredDelivery").style.display="block";
        </script>
        <?php
    }
}
if(isset($\u POST['pickupDelivery'])){
如果($_POST['pickupDelivery']==“pickup”){
?>
document.getElementById(“pickupName”).style.display=“block”;
document.getElementById(“DesiredPick”).style.display=“block”;
document.getElementById(“deliveryAddress”).style.display=“无”;
document.getElementById(“desiredDelivery”).style.display=“无”;
#皮卡名称,#需要皮卡{
显示:块;
}
#送货地址#需要送货{
显示:无;
}
document.getElementById(“pickupName”).style.display=“无”;
document.getElementById(“DesiredPick”).style.display=“无”;
document.getElementById(“deliveryAddress”).style.display=“block”;
document.getElementById(“desiredDelivery”).style.display=“block”;
请参见示例:

for(变量i=0;i
参见示例:

for(变量i=0;i
这应将所有内容设置为隐藏

<style>
     #pickupName, #desiredPickup, #deliveryAddress, #desiredDelivery {
       display: none; 
    }
</style>  

#收货人姓名、#期望收货人、#交货地址、#期望交货{
显示:无;
}
这应该根据单选按钮显示和隐藏字段

if(isset($_POST['pickupDelivery'])){
    if($_POST['pickupDelivery'] == "pickup"){
        ?>
        <script type="text/javascript">
            document.getElementById("pickupName").style.display="block";
            document.getElementById("desiredPickup").style.display="block";
        </script>
        <?php
    } else if($_POST['pickupDelivery'] == "delivery") { 
        ?>
        <script type="text/javascript">
            document.getElementById("deliveryAddress").style.display="block";
            document.getElementById("desiredDelivery").style.display="block";
        </script>
        <?php
    }
}
if(isset($\u POST['pickupDelivery'])){
如果($_POST['pickupDelivery']==“pickup”){
?>
document.getElementById(“pickupName”).style.display=“block”;
document.getElementById(“DesiredPick”).style.display=“block”;
document.getElementById(“deliveryAddress”).style.display=“block”;
document.getElementById(“desiredDelivery”).style.display=“block”;

这会将所有内容设置为隐藏

<style>
     #pickupName, #desiredPickup, #deliveryAddress, #desiredDelivery {
       display: none; 
    }
</style>  

#收货人姓名、#期望收货人、#交货地址、#期望交货{
显示:无;
}
这应该根据单选按钮显示和隐藏字段

if(isset($_POST['pickupDelivery'])){
    if($_POST['pickupDelivery'] == "pickup"){
        ?>
        <script type="text/javascript">
            document.getElementById("pickupName").style.display="block";
            document.getElementById("desiredPickup").style.display="block";
        </script>
        <?php
    } else if($_POST['pickupDelivery'] == "delivery") { 
        ?>
        <script type="text/javascript">
            document.getElementById("deliveryAddress").style.display="block";
            document.getElementById("desiredDelivery").style.display="block";
        </script>
        <?php
    }
}
if(isset($\u POST['pickupDelivery'])){
如果($_POST['pickupDelivery']==“pickup”){
?>
document.getElementById(“pickupName”).style.display=“block”;
document.getElementById(“DesiredPick”).style.display=“block”;
document.getElementById(“deliveryAddress”).style.display=“block”;
document.getElementById(“desiredDelivery”).style.display=“block”;
请参见此处

JQ的一个例子 我不知道你的html看起来怎么样,所以我自己做了一个

<div class="test">
    aaa
</div>
<div class="test">
    bbb
</div>
<div class="test">
    ccc
</div>
<div class="test">
    ddd
</div>
<div class="radios">
    <input type="radio" >
    <input type="radio" >

</div>
JQ:

或仅使用CSS

请参见此处

html:

<input type="radio" class="button1" >
<input type="radio" class="button2">
<div class="test1">
    aaa
</div>
<div class="test2">
    bbb
</div>
<div class="test3">
    ccc
</div>
<div class="test4">
    ddd
</div>
请参见此处

JQ的一个例子 我不知道你的html看起来怎么样,所以我自己做了一个

<div class="test">
    aaa
</div>
<div class="test">
    bbb
</div>
<div class="test">
    ccc
</div>
<div class="test">
    ddd
</div>
<div class="radios">
    <input type="radio" >
    <input type="radio" >

</div>
JQ:

或仅使用CSS

请参见此处

html:

<input type="radio" class="button1" >
<input type="radio" class="button2">
<div class="test1">
    aaa
</div>
<div class="test2">
    bbb
</div>
<div class="test3">
    ccc
</div>
<div class="test4">
    ddd
</div>

我认为使用jQuery可以很容易地做到这一点

jQuery

$("input[type=radio]").change(function() {
  if ($(this).val() === 'pickup') {
    $("#pickupName").addClass("show");
    $("#desiredPickup").addClass("show");
    $("#deliveryAddress").removeClass("show");
    $("#desiredDelivery").removeClass("show");
  } else if ($(this).val() === 'delivery') {
    $("#deliveryAddress").addClass("show");
    $("#desiredDelivery").addClass("show");
    $("#pickupName").removeClass("show");
    $("#desiredPickup").removeClass("show");
  }
});
只需将其添加到CSS中即可

CSS

.show{
  display: block !important;
}

但是您会问为什么您的代码不起作用。请确保您的脚本标记在body-end或head-end标记之前。然后它可能会起作用。

我认为使用jQuery可以很容易地做到这一点

jQuery

$("input[type=radio]").change(function() {
  if ($(this).val() === 'pickup') {
    $("#pickupName").addClass("show");
    $("#desiredPickup").addClass("show");
    $("#deliveryAddress").removeClass("show");
    $("#desiredDelivery").removeClass("show");
  } else if ($(this).val() === 'delivery') {
    $("#deliveryAddress").addClass("show");
    $("#desiredDelivery").addClass("show");
    $("#pickupName").removeClass("show");
    $("#desiredPickup").removeClass("show");
  }
});
只需将其添加到CSS中即可

CSS

.show{
  display: block !important;
}

但是你会问为什么你的代码不起作用。确保你的脚本标记在body-end或head-end标记之前。然后它可能会起作用。

那么,你想在页面加载本身上显示/隐藏div吗?你不需要css和js,而且看起来很好。你能解释一下什么不起作用吗?deault应该隐藏这四个divre是两个单选按钮,如果按下其中一个按钮,则前两个div应显示,如果按下另一个按钮,则前两个div应显示(如果在不刷新页面的情况下来回切换,则其他按钮应隐藏)@Shlomi我知道我不需要两者,但我尝试了两者,但都不起作用。当我选择单选按钮时,div不会显示。所以,你想在页面加载本身上显示/隐藏div?你不需要css和js,而且看起来很好。你能解释什么不起作用吗?迪奥,这四个div应该隐藏。有两个radio按钮,如果按下一个按钮,则应显示前两个div,如果按下另一个按钮,则应显示最后两个div(如果在不刷新页面的情况下来回切换,则应隐藏其他按钮)@Shlomi我知道我不需要两者,但我尝试了两者,但两者都不起作用。当我选择单选按钮时,div不会显示。我还需要它工作,而不必在两者之间切换。我需要做什么更改才能使其工作:我还需要它工作,而不必在两者之间切换。我需要更改什么这是可行的:我认为问题不在这里。但我会把它添加到我的帖子中。@djd97