小编Dan*_*eng的帖子

onchange + validation +输入关键奇怪的行为

我有一个带有日期输入字段的表单.日期应经过验证:仅允许从今天开始的日期+最多3年.如果日期有效,则会显示模式,否则会出现带有错误消息的警报.

假设somone将日期更改为26.10.2099:

如果一个人离开输入字段(通过用鼠标点击其他地方),一切都按预期工作:

  • 出现错误消息
  • 日期会自动更改回来
  • 没有模态显示

但是如果按下Enter键而不是仅保留输入字段,则会发生以下情况:

  • 没有错误消息显示
  • 日期会自动更改回来
  • 莫代尔出现了

我的想法是将日期更改回其初始值会导致再次触发onchange事件,然后日期有效并且模式将显示.但第一种情况并非如此.在第二种情况下,事件触发两次SOMETIMES但并非总是如此.

你可以在这里试试自己:https: //jsfiddle.net/6x9n53fx/3/

或者阅读以下代码:

HTML:

<div class="container">
    <form method="post" action="" enctype="multipart/form-data">
        <div class="row">
            <div class="col-sm-6">
                <div class="form-group">
                    <label for="review_date">Valid until *</label>
                    <input id="review_date" type="text" name="review_date" value="26.10.2016" class="form-control">
                    <p>Please set a validation date. (max 3 years)</p>
                </div>
            </div>
        </div>
    </form>
</div>
<!-- Modal -->
<div class="modal fade" id="info_modal" tabindex="-1" role="dialog" aria-labelledby="modal_title">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                <h4 class="modal-title" id="modal_title">Dialog</h4>
            </div>
            <div …
Run Code Online (Sandbox Code Playgroud)

javascript validation jquery date

9
推荐指数
1
解决办法
1196
查看次数

ThreeJS Android性能

我开始尝试使用本教程试用ThreeJS:http://buildnewgames.com/webgl-threejs/

现在我想在我的Android手机(Nexus 5)上试用我的结果,它运行得非常慢.我不知道为什么会这样.

因为http://threejs.org/页面上的threejs游戏的其他示例在手机上运行100%流畅.例如"Hello Run".

为什么我的Pong游戏在移动设备上这么慢,我该如何解决?

javascript performance android webgl three.js

7
推荐指数
1
解决办法
4939
查看次数

画布渐变表现

我目前正在使用画布编写一个小游戏.对于游戏,我需要某种雾,它隐藏了地图的大部分区域,并且只能看到玩家周围的一小块区域.我使用第二个画布覆盖游戏发生的那个并用渐变填充(从透明到黑色):

function drawFog(){
fogc.clearRect(0,0,700,600);
// Create gradient
var grd=fogc.createRadialGradient(player.getPosX(),player.getPosY(),0,player.getPosX(),player.getPosY(),100);
grd.addColorStop(0,"rgba(50,50,50,0)");
grd.addColorStop(1,"black");

// Fill with gradient
fogc.fillStyle=grd;
fogc.fillRect(0,0,700,600);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会导致巨大的性能问题,因为它会在每一帧重绘.

我想问一下是否有更好的解决方案可以达到同样的效果并获得更好的性能.

performance html5 gradient canvas fog

3
推荐指数
1
解决办法
984
查看次数

Javascript ==运算符不能按预期工作?

在问这个问题之前我搜索了2个小时,虽然我认为这是一个相当基本的问题,但没有找到解决问题的方法.在Java中,您可以使用equal()来查看两个对象是否具有相同的值.我认为这是==运算符在Javascript中的工作方式.显然它没有.:(

我一直在尝试使用==运算符比较两个自己创建的对象,但它返回false,尽管所有值都相等.为什么?

这是我创建我使用的字段对象的函数:

function field(player, figureKind) {
    this.player = player;
    this.figureKind = figureKind;
    this.hidden = true;
    if (player == 1 && hidden && figureKind != trapF && figureKind != flagF) {
        this.image = figureKind.getImage(0);
    } else if (player != 1 && hidden) {
        this.image = hidden;
    } else {
        this.image = figureKind.getImage(player);
    }
    this.setKind = setKind;

    function setKind(figureKind) {
        this.figureKind = figureKind;
        this.image = figureKind.getImage(player);
    }
    this.getKind = getKind;

    function getKind() {
        return this.figureKind;
    }
    this.getImage = getImage;

    function getImage() …
Run Code Online (Sandbox Code Playgroud)

javascript equals object

0
推荐指数
1
解决办法
717
查看次数