如何通过绑定到文本字段(输入组)拒绝用户输入,并允许从下拉列表(输入组btn)输入

7kjnsjlb  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(318)

我们使用phpipam。
我们发现,如果直接在subnet字段中输入数据,则不会执行内置的cidr计算,并且可以将重叠的子网输入到数据库中。
我们希望在维护系统架构的同时拒绝用户直接输入到字段,并允许用户通过下拉列表输入。
以html显示的子网编辑页

<?php  if (!$showDropMenuFull){ ?>
            <input type="text" class="form-control input-sm input-w-200" name="subnet" placeholder="<?php print _('subnet in CIDR'); ?>"  value="<?php print @$cidr; ?>" <?php if ($readonly) print "readonly"; ?>>
        <?php } else { ?>
                    <div class="input-group input-w-200">
                            <input type="text" class="form-control input-sm input-w-200" name="subnet" placeholder="<?php print _('subnet in CIDR'); ?>" value="<?php print @$cidr; ?>">
                            <?php if (strlen($dropdown_menu)>0) { ?>
                            <div class="input-group-btn">
                                    <button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Select <span class="caret"></span></button>
                                    <ul class="dropdown-menu dropdown-menu-right dropdown-subnets">
                                            <?php print $dropdown_menu; ?>
                                    </ul>
                            </div>
                            <?php } ?>
                    </div>
                    <?php } ?>
8mmmxcuj

8mmmxcuj1#

尝试添加 readonly 属性为 input . 它应该防止用户编辑 input 文本,但脚本应该能够继续编辑,而且它将以表单的形式提交。
它看起来像这样:

<input type="text" class="form-control input-sm input-w-200" name="subnet" placeholder="<?php print _('subnet in CIDR'); ?>" value="<?php print @$cidr; ?>" readonly="readonly">

你也可以用 readonly 没有值,但是如果您使用的是xhtml,请记住属性缩小是被禁止的,所以它必须是完整的。

相关问题