Отключить/Включить кнопку отправки до тех пор, пока все формы не будут заполнены

Я хочу, чтобы моя кнопка отправки формы была отключена/включена в зависимости от того, полностью заполнена ли форма.

Когда входные данные заполнены, кнопка отключена. Это отлично работает. Но я бы хотел, чтобы он отключил кнопку, когда вводится ввод.

Это мой script:

<script type="text/javascript" language="javascript">
    function checkform()
    {
        var f = document.forms["theform"].elements;
        var cansubmit = true;

        for (var i = 0; i < f.length; i++) {
            if (f[i].value.length == 0) cansubmit = false;
        }

        if (cansubmit) {
            document.getElementById('submitbutton').disabled = false;
        }
    }
</script> 
<form name="theform">
<input type="text" onKeyup="checkform()" />
<input type="text" onKeyup="checkform()" />
<input id="submitbutton" type="submit" disabled="disabled" value="Submit" />
</form>

Ответ 1

Просто используйте

document.getElementById('submitbutton').disabled = !cansubmit;

вместо условия if, которое работает только в одностороннем порядке.

Кроме того, для пользователей с отключенным JS я бы предложил установить только начальный disabled только JS. Для этого просто переместите script за <form> и вызовите checkform(); один раз.

Ответ 2

Просто добавьте else, а затем:

function checkform()
{
    var f = document.forms["theform"].elements;
    var cansubmit = true;

    for (var i = 0; i < f.length; i++) {
        if (f[i].value.length == 0) cansubmit = false;
    }

    if (cansubmit) {
        document.getElementById('submitbutton').disabled = false;
    }
    else {
        document.getElementById('submitbutton').disabled = 'disabled';
    }
}

Ответ 3

Поместите его в стол, а затем сделайте на ней:

var tabPom = document.getElementById("tabPomId");
$(tabPom ).prop('disabled', true/false);

Ответ 4

Я только что разместил это на кнопке Отключить отправку, пока поля ввода не будут заполнены. Работает для меня.

Используйте форму onsubmit. Хороший и чистый. Вам не нужно беспокоиться об изменениях и срабатывании событий нажатия клавиш. Не нужно беспокоиться о проблемах с клавиатурой и фокусом.

http://www.w3schools.com/jsref/event_form_onsubmit.asp

<form action="formpost.php" method="POST" onsubmit="return validateCreditCardForm()">
   ...
</form>

function validateCreditCardForm(){
    var result = false;
    if (($('#billing-cc-exp').val().length > 0) &&
        ($('#billing-cvv').val().length  > 0) &&
        ($('#billing-cc-number').val().length > 0)) {
            result = true;
    }
    return result;
}

Ответ 5

Вот код

<html>
   <body>
      <input type="text" name="name" id="name" required="required"                                    aria-required="true" pattern="[a-z]{1,5}" onchange="func()">
      <script>
       function func()
       {
        var namdata=document.form1.name.value;
         if(namdata.match("[a-z]{1,5}"))
        {
         document.getElementById("but1").disabled=false;
        }
        }
        </script>
  </body>
</html>

Использование Javascript