Javascript 在fieldset字段中显示和清除错误消息时维护用户输入

Javascript 在fieldset字段中显示和清除错误消息时维护用户输入,javascript,php,Javascript,Php,当我想向用户传达有关其输入的错误消息时,我想通知他们错误,但保留所有已填写/选择的字段值。尽管使用js警报框可以实现这一点,但在警报被确认且警报框非常丑陋之前,php页面在警报框下方不可见 相反,我更倾向于使用以下内容: echo "<fieldset id='fieldsetErr'> <legend id='legendErr'>Error:</legend> <p id='pErr'>"

当我想向用户传达有关其输入的错误消息时,我想通知他们错误,但保留所有已填写/选择的字段值。尽管使用js警报框可以实现这一点,但在警报被确认且警报框非常丑陋之前,php页面在警报框下方不可见

相反,我更倾向于使用以下内容:

echo "<fieldset id='fieldsetErr'>
              <legend id='legendErr'>Error:</legend>
              <p id='pErr'>" . $errMsg . "
              <br><br>
              <span style='padding-left:200px'>
                <a href='searchCriteria.php'>
                  <button>Clear</button>
                </a>
              </span>
              </p>
              </fieldset>";
#fieldsetErr {
  width: 500px;
  background:
    url(images/logo.jpg)
    top center / 300px 300px
    no-repeat
    fixed
    padding-box
    content-box
    red;
  color: white;
}

#legendErr {
  font-size: 20px;
  color: white;
  text-shadow: 1px 1px 2px black, 0 0 25px red, 0 0 5px red;
}

#pErr {
  margin-left: 20px;
}
此字段集错误消息与页面布局的其余部分很好地集成。不幸的是,当单击“清除”按钮时,当然会加载searchCriteria.php的新实例,并且用户以前的所有输入都会丢失

如果我只是删除清除按钮和清除错误消息的选项,那么用户的输入值仍然会保持不变,同时他们可以进行必要的更正并重新提交。但是,是否可以让用户在读取字段集错误消息后清除该消息,而不清除他们输入到该点的所有值,如果可以,该怎么做

更新:

我想也许我可以通过在div标记中包装fieldset错误消息来实现我的目的:

echo '<div id="divErr">
              <fieldset id="fieldsetErr">
                  <legend id="legendErr">Error:</legend>
                  <p id="pErr">' . $errMsg . '
                  <br><br>
                  <span style="padding-left:200px">                    
                    <button onclick=<script type="text/javascript">','removeDivErr();','</script>>Clear</button>
                  </span>
                  </p>
              </fieldset>
            </div>';
echo'
错误:

”$嗯

清楚的

';
单击Clear按钮时,使用js函数删除fieldset元素:

<script type="text/javascript">
    function removeDivErr() {
      var elem = document.getElementById('divErr');
      elem.parentNode.removeChild(elem);
    }
  </script>

函数RemoveDriver(){
var elem=document.getElementById('diver');
elem.parentNode.removeChild(elem);
}

虽然它不能像粘贴的那样工作,但我不确定这是否是因为我试图调用/集成javascript到php echo语句中的方式。我试着以不同的方式引用php echo语句和javascript函数调用,看看是否可以让它工作,但到目前为止,nadda。有人能证实吗?

我认为您需要采用ajax方法,而不仅仅是php。