如何检查输入文本的值并显示正确或错误

时间:2019-06-04 20:02:05

标签: jquery html

我正在建立一个简单的数学问题网站,以提高jQuery的效率并遇到问题。它不会接受答案,只会显示出错误的答案

我的代码:

function readChat(){
      clearArea();
    <?php

        if ($file = fopen("chat.txt", "r")) {
          while(!feof($file)) {
            $line = trim(fgets($file));
            if($line !== " "){
              $arr = explode(":", $line, 2);
              $name = $arr[0];
              $string = $arr[1];
              $string = str_replace(array("\r", "\n"), '', $string);


              if($name === $_COOKIE["username"] && $string !== "" && $string !== " " && $string !== "\n"){
                echo "selfMessage(\"".$string."\");";
              }else if($line !== "" && $line !== " " && $line !== "\n" && $string !== "" && $string !== " " && $string !== "\n"){
                echo "otherMessage(\"".$string."\", \"".$name."\");";
              }
            }
          }
          fclose($file);
        }



    ?>
    }

      window.setInterval(function() {
        readChat();
      }, 5000);
$(document).ready(function() {
  const myForm = $('#MyForm');
  const ul = $('items')
  const userList = $('#users');
  const AnswerInput = $('#Answer1').val();
  const msg = $('.msg');

  myForm.submit(function(e) {
    e.preventDefault()
    if (AnswerInput === '' || AnswerInput != '(x+2)(x+3)') { // if empty or wrong
      msg
        .slideDown(2000)
        .delay(1000)
        .addClass('error')
        .text('Please Enter an Answer');
      msg.delay(2500).slideUp(2000);
      //setTimeout(()=> msg.slideUp(), 2000)
    } else if (AnswerInput === '(x+2)(x+3)') { // if right
      msg
        .slideDown(2000)
        .delay(1000)
        .addClass('Correct')
        .text('You are right');
      msg.delay(2500).slideUp(2000);
    }
  })
});

即使我输入正确的答案消息,它也仅显示错误功能

1 个答案:

答案 0 :(得分:2)

您需要移动

const AnswerInput = $('#Answer1').val();

内部
myForm.submit(function(e){

事件处理程序。

您现在要执行的操作是将AnswerInput的输入框的值分配为首次加载页面时的值。然后,在页面的生存期内,使该变量的值保持相同。用户提交表单后,您再也不会尝试再次读取输入框的值。

如果您在事件处理程序函数中移动该行,则只要提交表单,它将从输入框中读取最新值。