如果比较错误,请尝试使键盘号变成红色



有人可以在我的JavaScript项目中帮助实现某些内容吗?@http://codepen.io/urketadic/pen/yplgbx我希望数字变成红色,如果其错误,而不是与PI顺序变成红色。我真的很难保持数量并与所有内容进行比较。

我已经尝试了很多,最后我想出了此代码:

 var count = 0;
// color the mistake right away
   $("#inputsm").keyup(function(event) {
    var pressed = event.key;
    answer = $("#inputsm").val();
    pisub = pi.substr(input,answer.length)
    if (pressed!=="Backspace"&&pressed!=="Delete") count++;
    else count--;
     console.log(count);
});

我只是感到困惑,我不知道该怎么做。文本区域还允许数字变红吗?我也尝试添加jQuery CSS,但它不起作用。有人可以在自己的codepen中写下它并发布链接吗?

看一下这个小提琴:https://jsfiddle.net/ebv5n64j/2/

我整理了一些基本上要做的事情。您可以从那里修改它,但这是基本概念。我设计了我的,以免用户在正确正确之前继续进行,但是您可以轻松更改它。

这是一个片段,但是JSFiddle具有完整的工作版本:

// If it's a delete command
  if(code === 8){
    if(!$("#wrong").length > 0)
        inputCount = (inputCount === 0 ? 0 : --inputCount);
    $("#pi span").last().remove();
    console.log(inputCount);
  } else if (code >= 48 && code <= 57) {
    var inputNumber = code - 48;
    var numSpan;
    $("#wrong").remove();
    numSpan = $("<span>"); // make a new one
    // Append the number
    numSpan.text(inputNumber);
    numSpan.removeClass("incorrect");
    if(String(inputNumber) === piDigits[inputCount]){
        numSpan.addClass("correct");
      inputCount++;
    } else {
        numSpan.attr("id", "wrong");
    }
    $("#pi").append(numSpan);
    placeCaretAtEnd(this);
  }

,所以我看着您的笔,以为您对解决方案有些简单。我认为一种更好的方法是将输入文本方面的字符串与PI的子字符串进行比较。无论如何,这是固定的代码,我已经使用工作版本链接到笔。

顺便说一句,您在描述中提到,如果他们想从3.14中的数字开始,则应输入1(对于索引1),但是您将其输入并减少1,因此本质上是开始的如果它们输入1。

$("#inputsm").keyup(function() {
 var thisLength = parseInt(input) + $(this).val().length - 1;
 if($(this).val().trim() === pi.substring(parseInt(input), thisLength)) {
    console.log("good so far!");
   $(this).removeAttr('style');
 } else {
   console.log("ahhh no good!");
   $(this).css('background', 'red');
 }
});

http://codepen.io/msafi/pen/dokogk/

最新更新