jQuery: 버튼을 제외한 첫번째 보이는 입력/선택/텍스트 영역을 찾는 방법?
나는 노력했다.
$(":input:not(input[type=button],input[type=submit],button):visible:first")
아무것도 찾지 못합니다
나의 실수는 무엇입니까?
업데이트: $(문서).load()에서 실행합니다.
<script type="text/javascript">
$(window).load(function () {
var aspForm = $("form#aspnetForm");
var firstInput = $(":input:not(input[type=button],input[type=submit],button):visible:first", aspForm);
firstInput.focus();
});
</script>
디버그에서 firstInput이 비어있는 것을 확인할 수 있습니다.
업데이트 2: ASP에 있습니다.Sharepoint에서 NET 페이지를 실행합니다.
나는 지금까지 어떤 요소의 경우 (고정된 요소의 경우) 그것을 찾고 어떤 요소는 그렇지 않다는 것을 발견했습니다. :(
원하는 것만 목표로 삼지 그래요? (데모)?
$('form').find('input[type=text],textarea,select').filter(':visible:first');
편집
또는 jQuery:input selector를 사용하여 폼 자손을 필터링합니다.
$('form').find('*').filter(':input:visible:first');
JQuery 코드는 괜찮습니다.창 로드 이벤트가 아닌 준비 처리기에서 실행해야 합니다.
<script type="text/javascript">
$(function(){
var aspForm = $("form#aspnetForm");
var firstInput = $(":input:not(input[type=button],input[type=submit],button):visible:first", aspForm);
firstInput.focus();
});
</script>
갱신하다
Karim79의 예(예를 들어주셔서 감사합니다)를 사용해 보았는데 잘 작동합니다: http://jsfiddle.net/2sMfU/
이것은 위의 내용을 요약한 것으로 저에게 완벽하게 들어맞습니다.알려주셔서 감사합니다!
<script language='javascript' type='text/javascript'>
$(document).ready(function () {
var firstInput = $('form').find('input[type=text],input[type=password],input[type=radio],input[type=checkbox],textarea,select').filter(':visible:first');
if (firstInput != null) {
firstInput.focus();
}
});
</script>
이것은 jQuery 1.5.2 기준으로 @Mottie의 답변보다 개선된 것입니다.:text
선택한input
지정되지 않은 요소type
속성(이 경우)type="text"
은(는) 암시합니다.
$('form').find(':text,textarea,select').filter(':visible:first')
이것이 제 해결책입니다.코드는 충분히 쉽게 따라할 수 있어야 하지만 다음과 같은 아이디어가 있습니다.
- 모든 입력, 선택 및 텍스트 영역 가져오기
- 모든 단추 및 숨겨진 필드 필터링
- 사용하도록 설정된, 보이는 필드에만 필터링
- 첫번째 것을 고르다
- 선택한 필드에 포커스를 맞춥니다.
코드:
function focusFirst(parent) {
$(parent).find('input, textarea, select')
.not('input[type=hidden],input[type=button],input[type=submit],input[type=reset],input[type=image],button')
.filter(':enabled:visible:first')
.focus();
}
그런 다음 부모 요소 또는 선택기를 사용하여 focusFirst를 호출합니다.
선택기:
focusFirst('form#aspnetForm');
요소:
var el = $('form#aspnetForm');
focusFirst(el);
아래 코드를 사용해 보십시오.
$(document).ready(function(){
$('form').find('input[type=text],textarea,select').filter(':visible:first').focus();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<form>
<input type="text" />
<input type="text" />
<input type="text" />
<input type="text" />
<input type="text" />
<input type="submit" />
</form>
언급URL : https://stackoverflow.com/questions/2823471/jquery-how-to-find-first-visible-input-select-textarea-excluding-buttons
'programing' 카테고리의 다른 글
부모 레코드별 최신 자식 레코드(조건 포함) 찾기 (0) | 2023.09.09 |
---|---|
HTML에서 PDF를 생성하기 위해 wkhtmltopdf 호출 (0) | 2023.09.09 |
Swift를 사용하여 정수인 NSDates 간의 차이(초) 찾기 (0) | 2023.09.09 |
타임스탬프 열의 모든 값을 한 번에 편집하려면 어떻게 해야 합니까? (0) | 2023.09.09 |
@도식 전반에 걸쳐 많은 ToOne이 잘못된 FK를 만듭니다. (0) | 2023.09.09 |