首页 > 解决方案 > 通过 JS 设置时,引导输入验证消息不显示 php

问题描述

我正在尝试使用引导程序 4 在 html 表单上使用 .setCustomValidity() 和 .invalid-feedback 类设置错误消息。

因此,当用户验证表单时,JS 脚本会检查输入,如果有错误,请设置适当的消息。我想让我的网站完全多语言化,所以我制作了随浏览器语言变化的全局变量,但是当设置这些变量时,网页上没有显示任何内容,我发现我的 php 设置了围绕它的注释标签。

例如 :

<div class="col-md-4">
            <input type="text" class="form-control" id="first_name" placeholder="<?php echo INP_FIRSTNAME; ?>" name="fname" autocomplete="given-name" required>
            <div class="invalid-feedback" id="fname-feedback"></div>
</div>

脚本 :

let fname_feedback = document.getElementById("fname-feedback");
let fname_i = document.getElementsByName("fname")[0];

fname_feedback.innerHTML = "<?php echo FDB_LENGTH ?>";
fname_i.setCustomValidity("Not valid");

然后我的 div 包含这个而不是 FDB_LENGTH 的值:

<!--?php echo FDB_LENGTH ?-->

在设置 innerHTML 之前,我尝试从常量中设置变量,但之后不再显示任何内容,因此如果有人可以帮助我或进行一些修复,将不胜感激!

谢谢阅读。

标签: javascriptphphtmlbootstrap-4

解决方案


请记住,PHP 变量$前面有:

<div class="col-md-4">
    <input type="text" class="form-control" id="first_name" placeholder="<?php echo $INP_FIRSTNAME; ?>" name="fname" autocomplete="given-name" required>
    <div class="invalid-feedback" id="fname-feedback"></div>
</div>

脚本:

let fname_feedback = document.getElementById("fname-feedback");
let fname_i = document.getElementsByName("fname")[0];

fname_feedback.innerHTML = "<?php echo $FDB_LENGTH; ?>";
fname_i.setCustomValidity("Not valid");

推荐阅读