드롭 다운 목록 변경시 양식을 제출하는 방법은 무엇입니까?


292

드롭 다운 목록이있는 JSP에서 페이지를 작성 중이며 사용자가 값을 선택하면 이동 버튼을 클릭해야하며 값이 서블릿으로 전송됩니다.

            </select>
            <input type="submit" name="GO" value="Go"/>

변경시 변경하려면 어떻게해야합니까? 예를 들어 사용자가 John을 선택하면 모든 세부 정보가 DB에서 검색되어 표시됩니다. 이동 버튼을 클릭하지 않고도 시스템에서 수행하고 싶습니다.

답변:


661

JavaScript의 도움을 요청하십시오.

<select onchange="this.form.submit()">
    ...
</select>

또한보십시오:


6
많은 사용자가 자바 스크립트를 차단합니다. 자바 스크립트없이이 작업을 수행 할 수있는 방법이 있습니까?
deweydb

5
@deweydb : 아뇨. 나는 그렇지 않으면 그것을 대답했을 것입니다 :) <noscript>JS가 활성화되어 있으면 사이트 경험이 더 좋다는 배너를 보여 주십시오. 완전히 다른 대안은 <ul><li><input type="submit">CSS를 사용하여 실제 드롭 다운 목록처럼 보이게하는 것입니다. 그러나 <select>더 이상 수단이 없습니다.
BalusC

89
@deweydb "많은 사용자가 자바 스크립트를 차단합니다…"인용? 나는 솔직히 자바 스크립트를 차단하는 사용자를 보지 못했습니다. 이러한 사용자가 신화라고 믿기 시작했습니다. 그것은 그들이 인터넷의 절반을 사용하지 못하게 할 것입니다. 그리고 스크립트를 차단할만큼 정통한 사람은 아마도 그것이 무해하고 어디에나 존재하는지 알고있을 것입니다.
Nathan Hornby

7
@BalusC <noscript>This form requires that you have javascript enabled to work properly please enable javascript in your browser.</noscript> 당신이 정말로 인용을 원한다면 @NathanHornby도 자바 스크립트를 활성화하지 않은 사용자에 대해 걱정하는 사람들을 위해 이것을 추가하십시오 왜 당신은 공공 도서관에 가야합니까? t 자바 스크립트가 악의적 인 코드이므로 컴퓨터의 무결성을 유지하기 위해 주로 보안상의 이유로 신화로 전달하려고합니다.
Belldandu

9
@deweydb 간단합니다. 태그에 submit버튼을 넣으십시오 <noscript>. 사용자가 noscript를 사용하는 경우에만 표시됩니다. JS를 사용하도록 설정 한 사용자는 간단히 요소를 선택할 수 있으며 스크립트가없는 사용자는 제출 버튼을 클릭하기 만하면됩니다. :)
Aaron Esau

81

간단한 자바 스크립트는 할 것이다-

<form action="myservlet.do" method="POST">
    <select name="myselect" id="myselect" onchange="this.form.submit()">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
        <option value="4">Four</option>
    </select>
</form>

다음은 좋은 자바 스크립트 튜토리얼 링크입니다 .


감사합니다!, 위의 하나는 MVC에서도 @H를 사용하여 작동합니다 (Html.BeginForm ( "Actioname", "controllername", FormMethod.Post)) <select name = "myselect"id = "myselect"onchange = "this.form.submit () "> <option value ="1 "> 하나 </ option> <option value ="2 "> 두 </ option> <option value ="3 "> 세 </ option> <option value ="4 " > 4 개 </ option> </ select>
charulatha krishnamoorthy

11

this.form.submit()아이디 나 이름으로 제출하는 것 외에 예를 들어 다음과 같은 양식이 있습니다.<form action="" name="PostName" id="IdName">

  1. 이름으로 : <select onchange="PostName.submit()">

  2. ID 별 : <select onchange="IdName.submit()">


자바 스크립트가 필요하지 않습니다!
MikeyE

'submit ()'은 HTML 요소라고 생각합니다. 자바 스크립트가 아닙니다. CMIIW
물리게 wedos

나는 그것이 내 의견의 의미입니다. 소품을 주려고 했어요 :-)
MikeyE

잠깐, JavaScript가 심각하지 않습니까?
James Haug

10
on * 속성 안에 작성된 것은 Javascript로 해석됩니다. 따라서 PostName.submit ()은 javascript입니다.
Asif Shahzad

9

위의 답변에있는 사람들에게. 확실히 JavaScript입니다. 그냥 인라인입니다.

모든 선택에 적용하려는 경우 jQuery와 동일합니다.

$('form select').on('change', function(){
    $(this).closest('form').submit();
});
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.