填写输入后如何显示按钮?

时间:2013-11-27 00:05:05

标签: javascript html css button sudoku

我有一个数独谜题Click Here并且它工作正常,除了我想在填写所有空单元格后显示“检查我的答案”按钮。有没有办法做到这一点?

这是我的拼图生成功能和我的支票填写功能:

// Check if filled out
function checkFilledOut() {
    // What do I do...?
    // How do I check if they are all filled out...?
}

// Generate sudoku puzzle
function generatePuzzle(num) {
    for(var i = 0; i < solution1.length; i++) {
        for(var j = 0; j < solution1[i].length; j++) {
            rowVal[i][j] = solution1[i][j];
        }
    }
    for(var h = 1; h <= 10; h++) {
        fiddle(rowVal);
    }
    for(var m = 0; m < 81; m++) {
        document.forms[1].elements[m].style.color = 'black';
    }
    putCellVal();
    emptyCells(num);
    for(var f = 0; f < 81; f++) {
        if (document.forms[1].elements[f].value != '') {
            document.forms[1].elements[f].readOnly = 'readonly';
        }
    }
    document.getElementById('CA').style.display = 'inline-block';
    document.getElementById('SS').style.display = "inline-block";
    document.getElementById('CP').style.display = "inline-block";
}

任何帮助将不胜感激!

JSFiddle链接:http://jsfiddle.net/oliverni/95w8z/

2 个答案:

答案 0 :(得分:0)

最简单的方法是在更改值后检查所有数组单元格是否都填充了for循环。

有点复杂,但内存可能更少,只是通过检查框中是否有值,并且有一个值(下面的解释)然后当你达到81时,只保留一个已满的数量的计数器。运行该功能以检查解决方案。

说明: 基本上,检查最后一个值,所以你知道你是否已经有了东西,然后如果没有,现在是,++,如果它现在仍然是,没有,如果有,现在不是, - 。 要获取旧值,请参考此处:How to get old Value with onchange() event in text box

你会想要使用第二个答案,有46个赞成票。

答案 1 :(得分:0)

这是我编写的函数,它使用类型文本迭代所有输入,并使用每个空白字段递增变量。然后,如果没有空白字段,则显示按钮。

function checkFilledOut() {
    numBlank = 0;
    $('input[type="text"]').each(function() {
       var val = $(this).val();
       if(val == "" || val == 0) {
           numBlank+=1;
       }
    });
    if(numBlank == 0) {
        $('#CA').show();
    }
    else {
        $('#CA').hide();
    }
}

Working fiddle此处。