【问题标题】:How to clear what was echoed into a span tag如何清除回显到跨度标签中的内容
【发布时间】:2018-03-02 20:08:41
【问题描述】:

所以我对用 php 制作的表单有疑问。我在跨度标记中回显一条错误消息,我想在单击“清除表单”按钮后清除该消息

这是我的 php,用于在字段未填写时确定错误消息

<script>
function clearForm(){
    document.getElementById("firstName").value = '';
    document.getElementById("email").value = '';
    document.getElementById("lastName").value = '';
    document.getElementById("subject").value = '';
    document.getElementById("message").value = '';
    document.getElementsByTagName("span").value = "";
}
</script>
      <?php
      $confirm= "";
      $firstName = $lastName = $Email = $Subject = $Message = '';
      if ($_SERVER['REQUEST_METHOD'] == "POST") {
        if (isset($_POST["firstName"]) && $_POST["firstName"]!=null) {$firstName = $_POST['firstName'];} else {
          $confirm ="Please fill it in";
        }
        if (isset($_POST["lastName"]) && $_POST["lastName"]!=null) {$lastName = $_POST['lastName'];} else {
          $confirm ="Please fill it in";
        }
        if (isset($_POST["Email"]) && $_POST["Email"]!=null) {$Email = $_POST['Email'];} else {
          $confirm ="Please fill it in";
        }
        if (isset($_POST["Subject"]) && $_POST["Subject"]!=null) {$Subject = $_POST['Subject'];} else {
          $confirm ="Please fill it in";
        }
        if (isset($_POST["Message"])&& $_POST["Message"]!=null) {$Message = $_POST['Message'];} else {
          $confirm ="Please fill it in";
        }
      }
      if (isset($_POST["Clearform"])) {
        $confirm= "";
      }

      ?>

这就是它在正文中的样子

<form name="contact" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="POST">
<p>Your Name: <br>
<input type="text" name="firstName" id="firstName" value="<?php echo $firstName;?>"><span id="confirm"><?php echo $confirm; ?></span></p>
</form>

以及“清除表单”按钮的代码

<input class="button" type="button" name="Clearform" value="Clear Form" onclick="clearForm();"/>

所以我做了这个小函数,将变量 $confirm 设置为无内容,但它不起作用。

请帮忙

【问题讨论】:

  • 你忘了包含那个小 clearForm 函数的代码,因为这似乎是最重要的部分,而且什么不起作用。
  • 你的意思是onlclick事件的javascript代码吗?如果是,那么我正在添加它,但它仍然是 java 而不是 php
  • 我不认为它是 Java,我认为它是 Javascript,它真的很重要
  • 嗯,你说“所以我做了这个小函数,将变量 $confirm 设置为无内容,但它不起作用。”......所以我想它是相关的。所以把document.getElementsByTagName("span").value = "";改成document.getElementById("confirm").innerHTML = "";
  • 对不起,如果这不起作用,那么我想我没有遵循你想要完成的事情:(

标签: php forms reset


【解决方案1】:

问题在于您的clearForm(),您不应该使用.value,而是可以使用innerHTMLinnerTexttextContent。来看看他们的区别check this link

function clearSpan() {
  let mySpan = document.getElementById('errorSpan');
  mySpan.innerText = '';
}
<span id="errorSpan">This is text to be cleared on button click</span>
<button onclick="clearSpan();">Clear</button>

【讨论】:

  • 您好,感谢您的回答。但是您看到我正在使用 php 创建错误消息,所以我关心的是如何将错误消息回显到 span 中然后清除它
  • @AgnieszkaZimolag 在 clearForm() 中,您使用“getElementsByTagName”获取跨度,它返回一个数组而不是单个对象,因此您可以通过“getElementsByTagName('span')[0].innerText 访问它" 或使用 "getElementById" 获取跨度
【解决方案2】:

这应该可以解决问题。使用 JQUERY .hide() 隐藏错误。

$("#btn").on("click", function(){
  $("#errmsg").fadeOut("slow");
});
#errmsg{
color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">Click to remove error.</button><br>
<span id="errmsg">Your error</span>

【讨论】:

    猜你喜欢
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2019-10-22
    • 1970-01-01
    • 2018-01-13
    • 2019-06-09
    相关资源
    最近更新 更多