我正在建立一个简单的数学问题网站,以提高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);
}
})
});
即使我输入正确的答案消息,它也仅显示错误功能
答案 0 :(得分:2)
您需要移动
const AnswerInput = $('#Answer1').val();
在
内部myForm.submit(function(e){
事件处理程序。
您现在要执行的操作是将AnswerInput
的输入框的值分配为首次加载页面时的值。然后,在页面的生存期内,使该变量的值保持相同。用户提交表单后,您再也不会尝试再次读取输入框的值。
如果您在事件处理程序函数中移动该行,则只要提交表单,它将从输入框中读取最新值。