반응형
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
반응형
'code' 카테고리의 다른 글
angular2에서 타이머를 만드는 방법 (0) | 2023.10.30 |
---|---|
코드 점화기에서 mysql AND OR 쿼리 결합 (0) | 2023.10.30 |
자바스크립트 배열을 사용하여 집합 차이를 계산하는 가장 빠르고 우아한 방법은 무엇입니까? (0) | 2023.10.30 |
아콘다 루트 환경 재설정 방법 (0) | 2023.10.30 |
오류 메시지 없이 PL/SQL 컴파일이 실패함 (0) | 2023.10.30 |