3

私はこのjQueryスクリプトを持っています:

$(document).ready(function() {
    //Focus the first field on page load
    $(':input:enabled:visible:first').focus();
    //Clear all fields on page load
    $(':input').each(function() {
        this.value = "";
    });
});
//Clear field on focus
$('input').focus(function() {
    this.value = "";
});
//Allow only alphabetical characters in the fields
$(':input').bind("keypress", function(event) {
    if (event.charCode != 0) {
        var regex = new RegExp("^[a-zA-Z]+$");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
        if (!regex.test(key)) {
            event.preventDefault();
            return false;
        }
        $(this).next('input').focus();
    }
});
//Enumerate submit click on [ENTER]-keypress
$(':input').keypress(function(e) {
    if (e.which == 13) {
        jQuery(this).blur();
        jQuery('#submit').click();
    }
});
//Submit form
$('#submit').click(function() {
    //Show loading image while script is running
    $("#response").html("<img src='../images/loader.gif'>");

    //POST fields as array
    function serealizeInputs(input) {
        var array = [];
        input.each(function() {
            array.push($(this).val())
        });
        return array;
    }

    var letters = serealizeInputs($('.letters'));

    $.post('loadwords.php', {
        letters: letters
    }, function(data) {
        //Show the resonse from loadwords.php
        $("#response").html(data);
    });
});

http://jsfiddle.net/8S2x3/1/を参照してください

もう少し最適化したいのですが、方法がわかりません。

私はまだ学んでいるので、コードのほとんどはコピーアンドペースト変更です

私の質問: Backspace キーを押して前のテキスト フィールドにフォーカスを移動するにはどうすればよいですか? 打ち間違えたら文字を消せるようにしたいのですが、もう一度バックスペースを押すとフォーカスが前の入力欄に移動します。したがって、基本的に入力が=''あり、バックスペースが押された場合、前のフィールドに移動します。入力に値があり、バックスペースが押された場合、通常どおりに動作します (文字を消去します)

また、フィールドに値が含まれている場合はcssクラスを追加し、空の場合は別のcssクラスを追加する方法を知りたいです。

4

3 に答える 3

6

試す:

$(':input').keydown(function(e) {
    if ((e.which == 8 || e.which == 46) && $(this).val() =='') {
        $(this).prev('input').focus();
    }
});

フィドル

于 2012-12-20T20:34:22.530 に答える
2

これを試して:

$(':input').keydown(function(e)
{
    if($(this).val() =='' && e.which ==8)
    {
        alert("Backspace pressed when input empty");
    }        
});
于 2012-12-20T20:35:22.023 に答える