jQuery提交表单IF

时间:2010-11-15 15:53:44

标签: javascript jquery ajax

嘿伙计们, 我有这个伟大的脚本,有人在堆栈溢出帮助我,除了我需要的一个主要功能缺失。

这是一个用户选择号码(通过在文本字段中输入该号码)然后点击播放按钮的游戏。点击播放按钮后会出现一系列数字,然后他们必须点击与其编号匹配的数字。

我正在使用的查询脚本会计算他们输入该次数的次数以及他们错过该次数的次数。看一下这里的剧本。 link text

现在我需要它做的是,在3次失误后将得分(命中和未命中)发送到数据库,这样我就可以保持高分。有任何想法吗?这是剧本。

var hitCount = 0,
missCount = 0;

function IsNumeric(n) {
return !isNaN(n);
}

$("#getit").click(function() {
var li = [],
    intervals = 0,
    n = parseInt($('#MyNumber').val());

if (IsNumeric(n)) {
    setInterval(function() {
        li[intervals++ % li.length].text(Math.random() > .1 ? Math.floor(Math.random()        * (10 + n) + (n / 2)) : n).attr('class', '');
    }, <?php echo $time ?>);
}

$('#randomnumber').empty();

for (var i = 0; i < 5; i++) {
    li.push($('<li />').click(function() {
        var $this = $(this);

        if (!$this.hasClass('clicked')) {
            if (parseInt($this.text(), 10) === n) {
                $this.addClass('correct');
                $('#hitcount').text(++hitCount);
            } else {
                $this.addClass('wrong');
                $('#misscount').text(++missCount);
            }
        }

        $this.addClass('clicked');
    }).appendTo('#randomnumber'));
}

return false;
});

2 个答案:

答案 0 :(得分:2)

我已更新您的问题here

更新状态后检查missCount是否大于或等于3然后停止播放(清除间隔并取消绑定事件),然后使用ajax请求保存该值。

我已将事件处理更改为使用event delegation而不是<li>元素上的直接点击事件。如果有很多元素需要绑定特定事件,事件委托会更好。

答案 1 :(得分:0)

我用解决方案更新了你的小提琴。检查http://jsfiddle.net/DHPQT/2/

我用

的形式标记了所有新内容
//new ....

要做的主要是在

后检查
$('#misscount').text(++missCount);

如果missCount为3,如果是,则停止游戏并发送内容