2014-01-30 6 views
5

최종 업데이트로 형태로 작동하지 :백 스페이스 복잡한 협회

나는 문제가 무엇인지 알게되었습니다. 내가 리눅스를 실행하고 그것에 당신이 사랑하는 돌아갈 백 스페이스를 사용할 수 없습니다. 그래서이 오류를 일으키는 확장 프로그램을 실행했습니다. 나는 그것이 문제가 생긴 것을 기억하지 못하기 때문에 그것을 깨뜨린 업데이트인지 확신 할 수 없다.

업데이트 2 :

그래서 내가 발견이 작동하지 않습니다 어디서나 내 응용 프로그램의 아무 곳이나 숫자 입력 양식이 있습니다. Chrome에서만이 작업을 수행합니다. 원래

:

그래서 나는 복잡한 "부자"조인 속성을 받아들이는 형태를 갖는다. 또는 "has_many through :"조인. 입력 필드에 "97.8"이라고 말하고 백 스페이스를 눌러 8에서 7로 바꾸려면 브라우저의 뒷 페이지를 사용하십시오. 내가 만드는 다른 모든 정상적인 형태로 잘 작동합니다. 내 StudentClass 모델에서

has_many :student_classes 
has_many :classes, through: :student_classes 
accepts_nested_attributes_for :student_classes 

내가

있습니다

아래 내가 가진 내 학생 모델에서

def new 
    @student = Student.new 
    @student.student_classes.build.build_class 
end 

을 내 컨트롤러에 다음 내 양식

= simple_form_for @student do |f| 
    = f.fields_for :student_classes do |ff| 
    = f.input :grade 
    = f.association :class 

입니다

belongs_to :student 
belongs_to :class 
accepts_nested_attributes_for :class 

그리고 마침내 내 클래스 모델에서 나는

has_many :student_classes 
has_many :students, through: :student_classes 

당신이 멋진 것 줄 수있는 모든 도움을. 제가 가지고있는 것은 매우 이상한 문제입니다.

는 업데이트 :

나는 백 스페이스를하지 않는 수레를 받아들이는 단지 입력입니다 알아 냈어. 문자열을 받아들이면 제대로 작동합니다.

+0

이 브라우저는 특정 동작입니까? –

+0

예, 방금 파이어 폭스에서 확인하고 작동합니다. 따라서 크롬에서만이 작업을 수행합니다. – moosilauke18

답변

0

javascript를 사용하여 백스 페이스 키 입력 (코드 : 8)에 이벤트 핸들러를 연결 한 다음, 눌렀을 때 원하는대로 수행 할 수 있습니다.

$(document).on("keydown", function (e) { 
    if (e.which === 8 && $(e.target).is("input, textarea")) { 
    e.preventDefault(); 
    <do whatever you want> 
    } 
}); 

를하거나 커피 스크립트를 선호하는 경우 : 귀하의 경우에, 당신은 추가로를 keyDown이 입력 필드의 내부에 무슨 일이 있었 여부를 필터링 할 것

$(document).on "keydown", (e) -> 
    if e.which is 8 and $(e.target).is("input, textarea") 
    e.preventDefault() 
    <do whatever you want> 
    return 

당신은 종류에 맞게 선택을 input, textarea을 변경할 수 있습니다 , 클래스 또는 ID를 입력하십시오.

아, 따뜻하고 모호한 크로스 브라우저 상호 운용성 세계 ...

+0

다른 브라우저와 관련이 없다는 것을 알았습니다.그것은 단순히 백 스페이스가 돌아갈 수 있도록 확장 기능을 가진 리눅스에서 Chrome을 실행하고있었습니다. 그것이 깨지거나 어떤 원인이되는 업데이트가 있었는지 나는 알지 못합니다. – moosilauke18