2014-04-27 1 views
0

모든 입력이 채워 졌는지 확인하기 위해 JQuery를 사용하려고합니다. 사용자가 버튼을 클릭하면 입력이 채워지면 멋진 콘텐츠가 표시됩니다. 그러나 필드 중 하나가 채워지지 않은 경우 시청자는 맞춤 경고 메시지를 받아야합니다. 나는 거의 가지고 있다고 생각하지만 도움이 필요합니다.jQuery를 사용하여 모든 입력에서 공백을 검사하려면 어떻게해야합니까?

$(function() { 
$("#btn_click").click(function() { 
    if($("input").val() == 0) { 
    $("form").append('<span class=".warning">You didn\'t fill out all the fields!</span>'); 
} 
    else { 
     //Some cool stuff happens 
    } 
}); 

});

입력 내용을 모두 입력하지 않으면 경고와 함께 예상되는 동작이 나타납니다. 좋습니다. 그러나 첫 번째 입력을 채우고 다른 모든 입력을 공백으로 남겨두면 "멋진 항목"이 실행됩니다. 그 나쁜. 입력 중이 비어 있으면 경고가 표시되기를 바랍니다. JQuery가 모든 입력을 테스트하도록하려면 어떻게해야합니까?

+0

'.each()'메소드를 사용하십시오. – Jai

+0

복제본은 http://stackoverflow.com/questions/1854556/check-if-inputs-are-empty-using-jquery – antony

답변

0

당신은 사용하여 확인할 수 있습니다 :

if ($("input").length != $('input').filter(function() { 
     return $.trim(this.value) 
    }).length) { 
    /* not all inputs filled */ 
} 
+0

고마워, 이건 내 목적을 위해 작동합니다! – user3502199

1

당신은 하나가 비어있는 경우 다음

+0

입니다. 예외적으로, 어떤 html 문서가 실제로 작동하는지에 상관없이 스크립트를 작성하고 있습니다. 그 자리에서. 입력 요소의 수는 어떤 HTML 문서가 실제로 살고 있는지에 따라 달라 지므로 실제로 어떻게 든 입력 요소가 있는지 확인할 수 있어야합니다. – user3502199

0

$('input').val()는 첫 번째 입력 값을 검색합니다 당신의 멋진 물건을 할 그렇지 않으면 오류 메시지가 표시 JQuery와 검사를 사용하여 각 입력 요소에 ID를 추가 할 수 있습니다. 모든 입력을 확인하려는 경우, 당신은 each 모든 입력 확인해야합니다 (그냥 예를 들어, 당신은 다른 사람이 물건을 사용할 수 있습니다) :

$('btn_click').on('click', function (e) { 
    e.preventDefault(e) ; 
    var allOk = true ; 
    $('input').each(function() { // Iterate over input 
     if (!$('input').val()) { // Don't check against 0 
      allOk = false ; // If the input isn't ok 
     } 
    }) ; 
    if (!allOk) { 
     // Warning message 
    } 
    else { 
     // Some cool stuff 
    } 
}) ; 
+0

이 코드를 시도하고 코드를 게시 할 때와 같은 방식으로 동작합니다. 첫 번째 입력 만 테스트하는 것 같습니다. 첫 번째 입력 내용을 채우고 다른 입력란을 비워두고 버튼을 클릭하면 "멋진 내용"이 계속 발생합니다. – user3502199

0

$("input").filter(function(){return this.value==''}).length > 0

또는 bettter을하려고하면 이미 jQuery를 사용하는 것처럼 일부 정교한 검증 플러그인을 사용

2
$(function() { 
$("#btn_click").on('click',function(e) { 
    e.preventDefault(); 
    $("input").each(function(){ 
     if(!$(this).val()){ 
      //error message 
      return false; 
     }else{ 
      //remaining code 
     } 
    }); 
    }); 
}); 
+0

거의 작동하지만 지금은 첫 번째 입력에 무언가를 입력하고 나머지는 비워두고 버튼을 클릭하면 오류 메시지가 표시되고 나머지 코드가 실행됩니다. 나는이 특정 폼의 모든 입력을 HTML로 클래스에주고 $ ('. required'), 같은 동작을 수행하려고 시도했다. – user3502199

관련 문제