2013-10-29 1 views
0

사용자가 텍스트 입력을 시작할 때 별도의 div (사용자 정의 '계속'버튼)를 표시하려고합니다. 내가 버튼을 클릭에 나타난 제출 함수 textInput.click 내부의 "showSubmitButton"라인을했다 때사용자가 텍스트 입력에서 타이핑을 시작할 때 별도 div에서 jQuery 사용자 정의 이벤트 트리거

var submitButton = $('#submitButton'); 
submitButton.hide(); 
submitButton.on("showSubmitButton", function(event) { 
    $(this).show(); 
    $(this).css('opacity', '0'); 
    $(this).fadeTo(400, 0.6); 
}); 
var textInput = $('#textInput'); 
textInput.click(function() { 
    $(this).find('input:text').val(''); // this clears the default 'type your name here' text 
}); 
textInput.keyDown(function() { 
    submitButton.trigger("showSubmitButton"); 
}); 

,하지만 사용자가 입력되었을 때 버튼 만 표시 할 :
나는 현재이 사용하고 뭔가를 입력에 넣으십시오.
.keyPress()도 사용했지만 두 키 이벤트 모두 '메서드 없음'오류가 발생합니다. 나는 그들을 잘못 사용해야 만한다고 생각하지만, 어떻게 해야할지 모르겠습니다. 이벤트 핸들러

+0

팁, 줄 4,5,6 왜 줄을 $ (this) 3 times? show(). css(). fadeTo() – Ahmad

답변

1

속기 기능은 사건을 낙타하지 않는, 그래서 .keydown(), .keypress() 등보다는 .keyDown() 또는 .keyPress()입니다. 그게 내가 텍스트 상자의 값이 빈 문자열이 있는지 확인하기 위해 검사와 input 또는 keypress 이벤트 (브라우저 지원에 따라) 중 하나를 사용하십시오 말했다 : 그것은를 keyDown되지

textInput.find('input:text').on('input', function(e) { 
    if($.trim(this.value).length > 0) { 
     submitButton.trigger('showSubmitButton'); 
    } 
    else { 
     // consider hiding the submit button? 
    } 
}); 
+0

그래, 난 그냥 깨달았 어. 내가이 질문이나 코스를 게시 한 후!) keydown 이벤트에는 낙타 사례가 없습니다. 그래서 그것을 던지고 있던 것은 수도 D였습니다. 이제 작동합니다. 그 해답을 주셔서 감사합니다. – moosefetcher

+0

감사합니다 - 귀하의 대안을 멋지게 작동합니다. 나는 길이가 '0'을 '길이 <2'로 변경하여 첫 번째 입력 (사용자가 1 자 길이까지 삭제할 때 트리거되지만 그와 함께 살 수 있음)에서만 트리거되도록 변경했습니다. – moosefetcher

1

- 그것은 keydown입니다

관련 문제