code

jQuery 체크 ifjQuery 체크 if존재하며 값을 갖습니다.존재하며 값을 갖습니다.

starcafe 2023. 10. 30. 21:10
반응형

jQuery 체크 if존재하며 값을 갖습니다.

다음과 같은 예가 있습니다.

<input type="text" class="input1" value="bla"/>

이 요소가 존재하고 하나의 문에 값이 있는지 확인할 수 있는 방법이 있습니까?아니면 적어도 그보다 더 짧은 것은

if($('.input1').length > 0 && $('input1').val() != '')

1마일 밖에 안 되는 조건에 좌절하고 있습니다.

입력이 존재하지 않으면 값이 없습니다.이거 먹어봐요

if($('.input1').val())

할 수 있는 일:

if($('.input1').length && $('.input1').val().length)

length에 평가합니다.false상태에서, 값이 다음과 같을 때.0.

다음과 같은 작업을 수행할 수 있습니다.

jQuery.fn.existsWithValue = function() { 
    return this.length && this.val().length; 
}

if ($(selector).existsWithValue()) {
        // Do something
}

그냥 그 일 때문에 jQuery 코드로 추적해봤어요..val() 함수는 현재 attributes.js의 165행에서 시작합니다.다음은 관련 섹션이며, 주석은 다음과 같습니다.

val: function( value ) {
    var hooks, ret, isFunction,
        elem = this[0];

        /// NO ARGUMENTS, BECAUSE NOT SETTING VALUE
    if ( !arguments.length ) {

        /// IF NOT DEFINED, THIS BLOCK IS NOT ENTERED. HENCE 'UNDEFINED'
        if ( elem ) {
            hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ];

            if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
                return ret;
            }

            ret = elem.value;

            /// IF IS DEFINED, JQUERY WILL CHECK TYPE AND RETURN APPROPRIATE 'EMPTY' VALUE
            return typeof ret === "string" ?
                // handle most common string cases
                ret.replace(rreturn, "") :
                // handle cases where value is null/undef or number
                ret == null ? "" : ret;
        }

        return;
    }

그럼, 당신은 그들이undefined아니면""아니면null-- if 진술에서 모두 거짓으로 평가됩니다.

사용자 정의 선택기를 직접 만들 수 있습니다. :hasValue다른 jQuery 요소를 찾거나 필터링하거나 테스트하는 데 사용합니다.

jQuery.expr[':'].hasValue = function(el,index,match) {
  return el.value != "";
};

그러면 다음과 같은 요소를 찾을 수 있습니다.

var data = $("form input:hasValue").serialize();

또는 현재 요소를 다음과 같이 테스트합니다.

var elHasValue = $("#name").is(":hasValue");

jQuery.expr[':'].hasValue = function(el) {
  return el.value != "";
};


var data = $("form input:hasValue").serialize();
console.log(data)


var elHasValue = $("[name='LastName']").is(":hasValue");
console.log(elHasValue)
label { display: block; margin-top:10px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <label>
    First Name:
    <input type="text" name="FirstName" value="Frida" />
  </label>

  <label>
    Last Name:
    <input type="text" name="LastName" />
  </label>
</form>

추가 읽기:

if($('#user_inp').length > 0 && $('#user_inp').val() != '')
{

    $('#user_inp').css({"font-size":"18px"});
    $('#user_line').css({"background-color":"#4cae4c","transition":"0.5s","height":"2px"});
    $('#username').css({"color":"#4cae4c","transition":"0.5s","font-size":"18px"});

}

나는 다음과 같은 일을 할 것입니다.$('input[value]').something. 이를 통해 가치가 있는 모든 입력을 찾고 이에 대해 작동합니다.

언급URL : https://stackoverflow.com/questions/15481539/jquery-check-if-input-exists-and-has-a-value

반응형