2012-09-11 3 views
0

나는 form_for가 있고 그 안에는 text_field_tag가 거의 없습니다. * _tag 중 하나에서 Enter 키를 누르면 제공된 URL에 POST 요청이 수행됩니다.이 요청을 사용 중지하고 다른 작업을 수행하려고합니다. 여기 form_for의 text_field_tag ​​중 하나에서 Enter 키를 눌렀을 때 POST 요청을 사용하지 않도록 설정하는 방법

<%= form_for 'sample', :url => sample_path, :remote => true do %> 
    <%= text_field_tag :field_1, nil, :class => 'input', :onKeyPress=>"return disableEnterKey(event)" %> 
    <%= text_field_tag :field_2, nil, :class => 'input', :onKeyPress=>"return disableEnterKey(event)" %> 
     <%= submit_tag "Send", :id => 'send', :class => 'floatright' %> 
    </div> 
    <% end %> 

는()

disableEnterKey = function(e) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if(code == 13) { //Enter keycode 
     //do somethig else 
    } 
    }; 

이 disableEnterKey 호출지고 disableEnterKey이지만, 그래서 POST 요청입니다. 기본 onKeyPress를 비활성화하고 이벤트를 덮어 쓰려면 어떻게해야합니까?

루비 피드백

감사 : "1.8.7"

레일 :

e.preventDefault(); 

그래서이 같이 표시됩니다 : 3.2.8

답변

1

당신은 사용해야합니다 :

disableEnterKey = function(e) { 
    var code = (e.keyCode ? e.keyCode : e.which); 
    if(code == 13) { //Enter keycode 
     e.preventDefault(); 
     //do somethig else 
    } 
    }; 
+0

작동하지만 e.preventDefault(); 함수의 끝에 있어야한다. // 내 경우에는 // 다른 것을한다. –

+0

아, 네. 위의 수정. – weexpectedTHIS

0

네가 거짓을 돌려 준다면 풀렸다. disableEnterKey가 끝나면 POST 요청도하지 않습니다. 빠른 피드백을 주셔서 감사합니다 @ ujm!

+0

작동하지만 나쁜 습관. .preventDefault()를 사용하면 그가 제한하려고하는 올바른 동작입니다. – weexpectedTHIS

관련 문제