Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 禁用javascript时模拟单击功能_Php_Javascript_Html - Fatal编程技术网

Php 禁用javascript时模拟单击功能

Php 禁用javascript时模拟单击功能,php,javascript,html,Php,Javascript,Html,在我的页面中有以下输入单选按钮(除其他外),选中该单选按钮后会显示一个选择输入框 这是使用javascript实现的。现在,如果禁用javascript,客户端还希望单击单选按钮时显示此选择框 如果没有javascript,这可能吗? 我看到的唯一的另一种方式是有一个中间表单提交按钮,它可以处理?我不知道该怎么办。 任何帮助都将不胜感激 以下是我目前的代码: <td style="visibility:<?= $Visible;?>" id="rmark1"><sp

在我的页面中有以下输入单选按钮(除其他外),选中该单选按钮后会显示一个选择输入框

这是使用javascript实现的。现在,如果禁用javascript,客户端还希望单击单选按钮时显示此选择框

如果没有javascript,这可能吗? 我看到的唯一的另一种方式是有一个中间表单提交按钮,它可以处理?我不知道该怎么办。 任何帮助都将不胜感激

以下是我目前的代码:

<td style="visibility:<?= $Visible;?>" id="rmark1"><span>Mark question?</span></td>
<td style="visibility:<?= $Visible;?>" id="rmark2" nowrap>
<input type="radio" id="mail1" name="mail" value="GE" onClick="showMark();" <?= $check;?> >
            <select id="ReturnMarkings" name="ReturnMarkings">
                <option value=''>Please Choose One:</option>
                <option value='1' <?= $Array[1];?>>Mark 1</option>
                <option value='2' <?= $Array[2];?>>Mark 2</option>

            </select>

function showMark() {
    var pcRMark1=document.getElementById('rmark1');
    var pcRMark2=document.getElementById('rmark2');

    pcRMark1.style.visibility="visible";
    pcRMark2.style.visibility="visible";
}
>标记1

不,没有JavaScript是不可能的。

根据浏览器的CSS支持,这可能会起作用:

#返回标记{显示:无;}
#mail1:checked+#returnmarkes{display:inline;}​


它依赖于CSS相邻同级选择器,IE8+根据支持该选择器。我还依赖于伪类,根据MDN,它是IE9+。

要实现类似的效果,需要结合使用PHP和CSS。必须应用以下更改。(抓紧点,这不好看)

单选按钮需要更改为链接,假设您的页面名为form.php,则链接必须如下所示:

<a href='form.php?showmark=true'>Show Mark</a>

在选择框下方添加以下逻辑,PHP将通过该逻辑注入CSS,使下拉列表可见:

<select id="ReturnMarkings" name="ReturnMarkings">
     <option value=''>Please Choose One:</option>
     <option value='1' <?= $Array[1];?>>Mark 1</option>
     <option value='2' <?= $Array[2];?>>Mark 2</option>
</select>

<?
   if(isset($_GET["showmark"])) {
?>

        <style type='text/css'>
        #ReturnMarkings {
            visibility:visible!important;
        }​
        </style>
<?
   }
?>

请选择一个:
>马克2
#返回标记{
可见性:可见!重要;
}​

我并不特别建议混合使用PHP/Markup/CSS,但这可能是您唯一的解决方案。

@bfavareto和@lostsource答案都很好——但这不需要PHP,在Chrome中也可以使用:

<style type="text/css">
    #ReturnMarkings {
        display: none;
    }
    :target {
        display: inline !important;
    }
</style>

<input type="radio" id="mail1" name="mail" value="GE"><a style='width:12px; height:12px; display:inline-block; margin-left:-12px;' href='#ReturnMarkings'></a>  

<select id="ReturnMarkings" name="ReturnMarkings">
                <option value=''>Please Choose One:</option>
                <option value='1'>Mark 1</option>
                <option value='2'>Mark 2</option>
            </select>

#返回标记{
显示:无;
}
:目标{
显示:内联!重要;
}
请选择一个:
马克1
马克2
单选按钮链接代码@lostsource的道具

演示@

编辑

正如评论中指出的,这实际上并没有“检查”radiobutton。下面是一个需要修复的廉价黑客,在JSFIDLE之外未经测试:


您不需要PHP来完成此操作,您可以将第一个链接转到#ReturnMarkes,然后使用:target Selector如果OP真的想要一个复选框,他可以通过在您的答案上放置编辑好的“我的评论”和+1来点击取消点击,但您不能在单选按钮上使用标记。另一个答案是好的,但在大多数主流浏览器中不起作用。你可以,有点。。当然,我假设宽度和高度是个好主意——只是添加了一个我自己的好东西的答案!只是出于好奇,是否也可以通过CSS修改单选按钮状态?这里有很多很棒的答案!我选择杰夫的答案,因为这对我来说很有效。我也感谢lostsource和bfavaretto@lostsource啊,我都没注意到!不知道如何使用css检查单选按钮,但这里有一个便宜的黑客!