2011-12-03 3 views
3

4 개의 필드가 있습니다. 최소한 하나의 필드에 값이 있으면 true를 반환하고, 모든 필드에 값이없는 경우 false를 반환합니다. 어떻게해야합니까?jQuery에서 필드를 모두 비 웁니다.

내 시도 : (내가 원하는처럼이 작동하지 않음)

function required_eachinput(){ 
    result = true; 
    $('.myclass').each(function(){ 
     var $val = $(this).val(); 
     var ok = $val.each(function(){}); 
     alert(ok); 
     if(!$val){ 
      $(this).css("background", "#ffc4c4"); 
      result = false; 
     } 
     $(this).keyup(function() { 
      $(this).closest('form').find('input').css("background", "#FFFFEC"); 
     }) 
    }); 
     return result; 
} 

답변

4

나의 추천은 : 4의

function required_eachinput(){ 
    var result = ''; 
    $('.myclass').each(function(){ 
     result += $(this).val(); 
    }); 
    return result != ''; 
} 

는 기본적으로 무엇 않습니다 CONCATENATE 모든 값 필드 (모든 필드 수). 결과가 빈 문자열이 아니라면 적어도 하나의 필드에 값이 있음을 의미합니다. 그렇지 않으면 모두 비어 있습니다.

+0

머시 사이드 1월 –

+0

@Kate, 페르시아어 발디? 코지 하스 티? –

+0

예, mazandaran. –

4

빈 요소를 필터링하고 왼쪽이 있는지 여부를 확인할 수 있습니다 : http://jsfiddle.net/bbFA6/1/. 당신이 할 수있는

function required_eachinput(){ 
    result = false; // Start with false 
    $('.myclass').each(function(){ 
     var $val = $(this).val(); 
     if($val){ 
      result = true; // If any is not empty return true 
     } else { 
      $(this).css("background", "#ffc4c4"); 
     } 
     $(this).keyup(function() { 
      $(this).closest('form').find('input').css("background", "#FFFFEC"); 
     }); 
    }); 
    return result; 
} 
1

?

function required_eachinput(){ 
    var inputs = document.querySelectorAll('.myclass'); 
    for(var i = 0, len = inputs.length; i < len; i++){ 
     if(inputs[i].value !== ''){ 
      return true; 
     } 
     return false; 
    } 
} 

Demo

1

Y U NO USE PLAIN JAVASCRIPT : 코드를 깨는없이

function required_eachinput() { 
    return $(".myclass").filter(function() { 
     return $(this).val() !== ""; // only keep non-empty elements 
    }).length > 0; // check whether you have any non-empty elements left 
} 
+0

항상 평범한 JvaScript를 사용할 수 있습니다. 라이브러리는 단지 편의를위한 것입니다 :) – pimvdb

관련 문제