programing

jQuery: 버튼을 제외한 첫번째 보이는 입력/선택/텍스트 영역을 찾는 방법?

starjava 2023. 9. 9. 08:50
반응형

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

반응형