2010-02-16 2 views
1

제출 단추가없는 양식이 있는데 사용자가 Enter 키를 눌렀을 때 양식이 계속 제출되면 좋을 것입니다. Safari, Firefox 및 Chrome에서 원하는 동작을 제공하는 숨겨진 제출 버튼을 추가하려고 시도했지만 양식이 IE에 아직 제출되지 않았습니다. 이 작업을 수행하는 표준 방법이 있습니까?제출 단추가 없을 때 입력 키를 눌렀을 때 제출할 양식 얻기

+2

왜 제출 버튼이 없습니까? 이것은 나쁜 사용성입니다. 나는 많은 사용자가 혼란스러워하고 무엇을 해야할지 모를 것이라고 생각한다. 문제는 예상치 못한 일을하고 있다는 것입니다. 사용자는 모든 양식에 적어도 일종의 제출 버튼이 있다고 예상합니다. ** 사용자를 놀라게하지 마십시오 **. –

+0

@Felix 우리는 원하는대로 스타일을 지정할 수 있도록 버튼을 정의하는 div로 href를 래핑했습니다. 시각적으로 제출 버튼이 있지만 양식에 "제출"유형이있는 입력 태그가 없습니다. 이것이 잘못된 접근이라고 말할 수 있습니까? – Readonly

+0

아아, 넓은 의미에서 버튼 제출 *을 이해합니다.). 아니요,이 버튼/링크가 양식을 제출한다는 사실을 분명히 보여주는 한 완전히 완벽합니다. 버튼처럼 보일 것입니다 (최소한 표준 링크와는 다릅니다). –

답변

2

테스트/크로스 브라우저 : 아무 버튼이 제출되면 자바 스크립트를 사용할 수없는 경우

function submitOnEnter(e) { 
    var theEvent = e || window.event; 
    if(theEvent.keyCode == 13) { 
     this.submit; 
    } 
    return true; 
} 
document.getElementById("myForm").onkeypress = function(e) { return submitOnEnter(e); } 

<form id="myForm"> 
<input type="text"/> 
... 
</form> 

, 형태가 비참하게 저하되지 않습니다!

+0

'* on * keypress'가되어서는 안됩니까? –

+0

@Andy E - 고마워, 고쳐야한다. :) – karim79

0

텍스트 상자 또는 일부 컨트롤의 onKeyDown 이벤트는 javascript 함수를 호출하고 form.submit(); 문을 함수에 추가하십시오.

해피 코딩 !!

0

이게 무슨 뜻이야? (자연스럽게) jQuery를 사용

document.myformname.submit(); 
2

:

$("#myForm input").keyup(
    function(event){ 
     if(event.keycode == 13){ 
      $(this).closest('form').submit(); 
     } 
    } 
); 

는 시도한다는주십시오.

+0

양식은 일반적으로 엔터 키를 눌렀을 때 (Windows에서 어쨌든) 제출된다. –

+0

나는이 대답으로 갔다. 그러나 그것은 event.keyCode –

0

당신은 단지 거기에 <button type="submit">submit</button>을 넣어 오른쪽, CSS로 자신의 위치를 ​​변경할 수 있다는 사실을 알고 : jQuery를에 대한 자세한 내용은

<head> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
    <script type="text/javascript" charset="utf-8"> 
    <!-- 
     $(document).ready(function() { 
      $(document).keyup(function(event){ 
       if(event.keycode == 13){ // This checks that it was the Enter key 
        $("#myForm").submit(); // #myForm should match the form's id attribute 
       } 
      }); 
     }); 
    //--> 
    </script> 
</head> 
<body> 
    <form id="myForm"> 
    ... 
    </form> 
</body> 

? position:absolute;left:-9999px; 트릭을해야합니다. display:none는 작동하지 않습니다.

js가로드되지 않은 경우에도 작동합니다.

편집 : 그러나 js를 사용하기로 선택한 경우 텍스트 영역이있는 경우 제출하지 않는 것을 잊지 마십시오.

+0

제안에 감사하지만, IE7에서는 작동하지 않는다. – Readonly

+0

나를위한 일 ... http://iamntz.com/experiments/form_test.php :) –

관련 문제