当前位置: 首页 > 知识库问答 >
问题:

Chrome Auto checked单选按钮,带“必需”屏蔽柱的隐藏div

从劲
2023-03-14

编辑3:啊哈...一些进展。问题实际上是在我忽略的div下面的一些代码中(更新了下面的超文本标记语言以反映)。第二个div包含一个“必需”的输入,所以简单地通过javascript将div更改为显示=无实际上并不会使页面完全忽略隐藏的div。所以稍微改变一下我问题的角度——我将如何调整下面的代码以完全忽略隐藏的div,从而不读取所需的字段?

编辑2:我已经尝试删除下面的第二块JS代码,并将动态PHP代码直接插入到输入和div标记中,以更改显示——仍然没有成功。

编辑1:只是确认一下,类似问题的解决方案在这种情况下不起作用:自动选中单选按钮和php表单处理-如何避免空白字段?Chrome团队似乎在更高版本中进行了更改,这使得该解决方案变得多余。

网站上的用户可以选择积分或邮票-我通过PHP从数据库中获取值,表单应该选中相关的单选按钮,并且只显示与该单选按钮相关的Div。

一切正常,但是,除非我手动更改单选按钮,否则它不会让我张贴表单,即我不能用从数据库中自动选择的值张贴——这似乎是一个类似的问题(Chrome浏览器忽略自动完成=关闭)——但是不管我用Chrome自动完成做什么,它都不起作用。此外,该页面识别为选中的无线电,因为它在正确的位置显示了我的圆点。(编辑3:仍然不确定为什么这在Mozilla中有效,但不是Chrome——但最新的编辑使这一点不那么重要)

下面是我的JS,如果单选按钮被更改,它会显示正确的Div:

$(function () {
          var $divs = $('#option > div');
           $('input[type=radio]').change(function() {
                  $divs.hide();
                  $divs.eq( $('input[type=radio]').index( this ) ).show();
              });
    });

此JS基于DB设置正确的单选按钮,并在页面加载时显示正确的div:

$(function() {
        var $radios = $('input:radio[name=selection]');
        var $type = "<?php echo $type; ?>";


        if($type === 'points') {
            $radios.filter('[value=points]').prop('checked', true);
            document.getElementById('pointsdiv').style.display = 'block';
            document.getElementById('stampdiv').style.display = 'none';

        }
        else if($type === 'stamp') {
            $radios.filter('[value=stamp]').prop('checked', true);
            document.getElementById('stampdiv').style.display = 'block';
            document.getElementById('pointsdiv').style.display = 'none';

        }
    });

我的HTML和PHP:

$type = $_SESSION['user']['type']; //Note: This is actually set at the very top of the page i.e. before the JS

<form autocomplete="off" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST" role="form">

                <input type="radio" id="selection" name="selection" value="points"></input><label>Points</label>
            &nbsp;
            &nbsp;    
                <input type="radio" id="selection" name="selection" value="stamp"></input><label>Stamps</label><br></br>


                <div id="option"> 

                        <div id="pointsdiv"> 
                            //Points related information here
                           <input type="text" required="required"/>
                        </div>
                        <div id="stampdiv"> 
                            //Stamp related information here - below input is required so when pointsdiv is displayed, this entire div should not even load
                          <input type="text" required="required"/>
                        </div>


                   </div>
<button type="submit" class="button">Save</button>
</form>

如果我不更改单选按钮,也就是说,如果加载时选中了“点”,然后单击“保存”按钮,有人知道如何加载此页面并发布表单吗?

共有1个答案

云宾鸿
2023-03-14

输入无线电组必须具有相同的名称,但不具有相同的id,因此您应该为其中一个更改id="选择"。

如果所有内容都在同一个页面中,而该页面使用的是php,那么在设置输入值之前,必须等待dom就绪。

有一种不使用javascript的动态方式:

<input type="radio" <?=$type =='points'?='checked="checked"':''?> id="selection" name="selection" value="points">

你可以用另一个单选按钮,也可以用divs pointsdiv和stampDiv来做同样的事情

 类似资料:
  • 我正在尝试隐藏按钮div和显示一个隐藏的div后,一个表单按钮已经被点击,加上延迟提交/重定向。下面是我想出的办法,但似乎没有100%奏效。 null null 任何建议都非常感谢

  • 问题内容: 我一段时间以来一直在寻找解决方案…我试图根据添加到Woocommerce结帐页面上的单选按钮选项来显示或隐藏特定的运费。但是我对Ajax&JQuery并不需要任何了解。 基本上,如果用户选择单选 选项_1 ,它将仅显示“ flat_rate:1 ”和“ flat_rate:2 ”。如果用户选择单选 选项_2 ,它将仅显示“ flat_rate:3 ”和“ flat_rate:4 ” 这

  • 问题内容: 我只是注意到IE7中有一个奇怪的行为。 我有带有相关标签的单选按钮,如下所示: 单选按钮通过CSS隐藏,显示:无或可见性:隐藏(不问) 问题是-当我单击IE7中的标签(尚未查看其他IE版本)时,实际上未选中关联的单选按钮。我通过jquery确认了这一点- 标签click事件被触发,但单选按钮click事件未触发。表单过帐还确认选中的单选按钮没有更改。 这在firefox中可以正常使用,

  • 我努力在网上寻找答案,但是我做不到。 尝试为现有网站创建自动测试(因此我无法编辑网站css/html/等)。我想在表单上选择一个单选按钮,但是,当我在命令行中运行.rb文件时,我得到了“元素当前不可见,因此可能无法与之交互”错误消息。 似乎单选按钮及其标签位于“p”的一侧,因此不可见,这意味着我似乎无法单击它。即使我用鼠标将鼠标悬停在元素上,也不会显示手形指针,显示它在鼠标悬停时不可见。 我已经尝

  • 我有一个按钮:当我点击它时,它会发送一个ajax请求,然后,javascript代码在完成后将类“隐藏”添加到这个按钮上。 我怎么能等待ajax请求结束?发送单击命令后,我认为Selenium应该检测到按钮中何时添加了“隐藏”类,但我不知道如何检测。 你能帮我吗? 它不工作(我有一个超时):

  • 问题内容: 我有一个非常简单的表单,其中需要选择一个单选按钮以使表单有效。单选按钮由生成。 从该小提琴中可以看出,理想的行为是,当第一次单击单选按钮时,应该验证表单(是唯一的元素),但是请注意(在同一单选按钮上)按钮或任何其他)来验证表单: http://jsfiddle.net/Xsk5X/3/ 我想念什么? 问题答案: 尝试将ng-click属性添加到您的单选按钮输入中。 感谢Manny D首