2011-04-13 3 views
1

숨겨진 제출 버튼에 문제가 있습니다. Ajax (jQuery) 채팅에 사용하는 입력 필드가 있는데 사람들은 텍스트를 입력하고 Enter 키를 눌러 제출해야합니다. 이것은 파이어 폭스에서 잘 작동하지만 크롬에서는 그렇지 않다. 나는 마치 그것이없는 것처럼 취급한다고 생각한다.숨겨진 제출 버튼은 입력시 Chrome에서 제출되지 않음

나는 다음과 같은 코드를 사용하고 있습니다 :

을 그리고 난 제출 숨기기 위해 이것을 사용 버튼 :

<div class="submit"> 
    <input type="submit" value="Submit" style="display: none;"> 
</div> 
다음 HTML은 다음과 같이한다

$('#CommentChatForm input:submit').hide(); 

나는 또한 위에 keypress()를 사용하여 시도했다 :

$('#CommentMessage').keypress(function(e){ 
    if(e.which == 13){ 
     $('#CommentChatForm').submit(); 
    } 
}) 

이렇게하면 Chrome에서 정상적으로 작동하지만 Firefox에서는 한 번이 아닌 두 번 전송됩니다.

답변

4

keypress 핸들러를 사용하는 경우 숨겨진 제출 버튼이 필요하지 않으므로 제거하십시오. 당신이 그것을 표시하지 않는 경우 크롬

http://jsfiddle.net/qEAeN/

에서 나를 위해

+0

고마워, 버튼을 제거하고 keypress 핸들러를 추가하면 이제 완벽하게 작동합니다. –

-1

작품은 HTML에 추가하지 마십시오, 당신의 JS

+0

이것도 확인할 수 있습니다. – Alex

+1

후발 사용자 : 이는 사양의 일부인 단일 텍스트 입력이 있기 때문입니다. (http://stackoverflow.com/questions/1370021 참조) [이 입력 예 2 개] (http://jsfiddle.net/qEAeN/98/)는 작동하지 않습니다. – cmbuckley

0

을 다시 한 번 확인해야 할 수도 있습니다.

HTML :

<form id="form" onsubmit="my_submit()"> 
<input type="text" id="msg" /> 
</form> 

자바 스크립트 :

function my_submit(){ 
    var msg = $('#msg').val(); 
    .... 
    submit_on_my_own(msg); 
    ... 
    return false; 
} 
8

때로는 HTML의 제어, 일부 위젯 또는 모듈에 의해 CSS와 당신 너무 스타일 것들을 생성되는이 없습니다. 이것은 나에게도 마찬가지였다. 하지만 당신이 어느 방식으로 작동 파이어 폭스에서

display:none;

를 사용하는 경우가

visibility:hidden;

를 사용하는 경우 크롬에서 작동하는지 발견하는 경우. 희망이 누군가에게 도움이 될 것입니다.

0

나는 제출 버튼이없이이 방법을 사용하고 있습니다.

$(document).ready(function() 
{ 
    $('#Username').keypress(function(e){ 
     if(e.which == 13){ 
      $('#CheckLogin').submit(); 
      } 
     }); 
    $('#Password').keypress(function(e){ 
     if(e.which == 13){ 
      $('#CheckLogin').submit(); 
      } 
     }); 
}); 
관련 문제