Подтвердить что ты не робот

Как проверить, пустое поле ввода

Я делаю форму со входами, если тип ввода пуст, кнопка submit отключена, но если поля ввода имеют длину > 0, кнопка отправки включена

<input type='text' id='spa' onkeyup='check()'><br>
<input type='text' id='eng' onkeyup='check()'><br>
<input type='button' id='submit' disabled>

function check() {
  if($("#spa").lenght>0 && $("#eng").lenght>0) {
    $("#submit").prop('disabled', false);
  } else {
    $("#submit").prop('disabled', true);
  }
}

он работает, но если я удалю, например, содержимое входного спа, кнопка submit все еще включена.

4b9b3361

Ответ 1

используйте trim и val.

 var value=$.trim($("#spa").val());

if(value.length>0)
{
 //do some stuffs. 
}

val(): вернуть значение ввода.

Trim(): обрезает пробелы.

Ответ 2

используйте .val(), он вернет значение <input>

$("#spa").val().length > 0

И у вас была опечатка, length not lenght.

Ответ 3

Поскольку javascript динамически типизируется, вместо использования свойства .length, как указано выше, вы можете просто обрабатывать входное значение как логическое:

var input = $.trim($("#spa").val());

if (input) {
    // Do Stuff
}

Вы также можете извлечь логику в функции, затем, назначив класс и используя метод each(), код более динамичен, если, например, в будущем вы хотели бы добавить другой вход, вам не понадобится изменить любой код.

Поэтому вместо того, чтобы жестко кодировать вызов функции во входной разметке, вы можете дать входы классу, в этом примере это test, и использовать:

$(".test").each(function () {
    $(this).keyup(function () {
        $("#submit").prop("disabled", CheckInputs());
    });
});

который затем вызывает следующее и возвращает логическое значение для назначения свойству disabled:

function CheckInputs() {
    var valid = false;
    $(".test").each(function () {
        if (valid) { return valid; }
        valid = !$.trim($(this).val());
    });
    return valid;
}

Вы можете увидеть рабочий пример всего, что я упомянул в этом JSFiddle.

Ответ 4

Почему вы не используете:

<script>
$('input').keyup(function(){
if(($('#eng').val().length > 0) && ($('#spa').val().length > 0))
    $("#submit").prop('disabled', false);
else
    $("#submit").prop('disabled', true);
});
</script>

Затем удалите функцию onkeyup на входе.

Ответ 5

Попробуйте это

$.trim($("#spa").val()).length > 0

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

Ответ 6

если вы используете jquery-validate.js в своем приложении, используйте выражение ниже.

if($("#spa").is(":blank"))
{
  //code
}

Ответ 7

Этот фрагмент обработает более двух флажков, если вы решите развернуть форму.

$("input[type=text]").keyup(function(){
    var count = 0, attr = "disabled", $sub = $("#submit"), $inputs = $("input[type=text]");  
    $inputs.each(function(){
        count += ($.trim($(this).val())) ? 1:0;
    });
    (count >= $inputs.length ) ? $sub.removeAttr(attr):$sub.attr(attr,attr);       
});

Рабочий пример: http://jsfiddle.net/sr4gq/