0

5 つのテキスト ボックスと送信ボタンがあります。

デフォルトでは、送信ボタンは無効になっています。

すべてのテキスト ボックスに値を入力するときに、ボタンを有効にする必要があります。

ボタンは、一部のテキスト ボックスのみに入力した後は有効にしないでください。

4

3 に答える 3

6

jQuery ソリューション

デモ

function doCheck(){
    var allFilled = true;
    $('input[type=text]').each(function(){
        if($(this).val() == ''){
            allFilled = false;
            return false;
        }
    });
    $('input[type=submit]').prop('disabled', !allFilled);
}

$(document).ready(function(){
    $('input[type=text]').keyup(doCheck).focusout(doCheck);
});

プレーン Javascript ソリューション

デモ

これには、送信ボタンに次の ID が必要ですmysubmit:

function doCheck(){
    var allFilled = true;

    var inputs = document.getElementsByTagName('input');
    for(var i=0; i<inputs.length; i++){
        if(inputs[i].type == "text" && inputs[i].value == ''){
            allFilled = false;
            break;
        }
    }

    document.getElementById("mysubmit").disabled = !allFilled;
}

window.onload = function(){
    var inputs = document.getElementsByTagName('input');
    for(var i=0; i<inputs.length; i++){
        if(inputs[i].type == "text"){
            inputs[i].onkeyup = doCheck;
            inputs[i].onblur = doCheck;
        }
    }
};
于 2013-06-10T07:51:54.407 に答える
1

次のようなコードを使用できます。

var inputs = $('input');
inputs.keypress(function() {
   var count = 0;
   inputs.each(function() {
       if ($(this).val()) {
           count++
       }
   });
   if (count === inputs.length-1) {
      // enable the button
   } else {
      // disable the button so it will be disabled if someone remove the text
   }
});
于 2013-06-10T07:50:20.033 に答える