2017-11-11 11 views
0

모든 게시물 사용자 시간대 페이지에 실시간 코멘트 기능을 추가하려고합니다. 한 후실시간 코멘트 작성 기능

$(".post-comment").on('submit', function(e){ 
    e.preventDefault(); //STOP default action 
    var id = $(this).attr("data-id"); 
    console.log('Comment on: '+id); 
    var dbref = firebase.database().ref('post-user/'+id+'/comments'); 
    var data = $(this).serialize(); 
    var t = Date.now(); 
    dbref.push().set({ 
     postedAt: t, 
     text:data.comment, 
     pid:id 
    }); 
}) 

:

여기
<form action="#" class='post-comment' data-id='3214'> 
    <input type="text" name='comment'> 
    <input type='submit' style='visibility: hidden;'> 
</form> 

양식을 처리하는 내 자바 스크립트 코드는 이벤트 제출되어

모든 게시물의 코멘트 섹션 가진 다음 HTML 양식을 포함 : 여기 내가 한 일이다 사용자가 Enter 키를 누르면 웹 페이지가 Javascript에서 함수를 호출하는 대신 다시로드됩니다.

Enter 키를 누를 때 설명 데이터와 해당 게시물 정보 (id, authorid)를 받고 firebase에 의견 데이터를 보내려고합니다.

$("input").keypress(function(event) { 
    if (event.which == 13) { 
    event.preventDefault(); 
    $("form").submit(); 
    } 
}); 

그러나이 경우 내가 모든 게시물 그래서 난이 구현하는 방법에 혼란 스러워요 해당 코멘트 양식이 포함되어있다 여러 형태가 있습니다

몇 가지 검색을 수행 한 후 나는 다음과 같이 키를 눌러 이벤트에 대해 알게 이리.

도움이 될 것입니다.

+0

웹에서 같은 것을 사용하고 싶습니다. – Tony

+0

감사를 사용할 수 있지만 나는 또한 안드로이드 응용 프로그램과의 중포 기지를 사용하고 – flamelite

답변

0

부여 양식 id :

<form id='comment-form' action="#" class='post-comment' data-id='3214'> 

그럼 그냥 그 양식을 제출

$("input").keypress(function(event) { 
    if (event.which == 13) { 
    event.preventDefault(); 
    $("#comment-form").submit(); 
    } 
}); 
당신은 제안을 ASP.Net SignalR
+0

하지만 각 게시물에 해당하는 양식이 여러 개 있기 때문에 $ ("# comment-form")에 양식 요소를 얻는 방법은 무엇입니까? – flamelite

+1

@flamelite는 양식을 잊어 버립니다. 하나의'input' 만 사용하십시오 - @Frank에 표시된대로 키 13에 Enter를 입력하고 Firebase 게시 기능을 호출하십시오. 예 :'dbref.set ($ ("input"). value)'-> 적절한 키를 설정했는지 확인하십시오. ** 첫 번째 엔터 입력 **을 추적해야합니다. 'let myFKey == null; 만약 myFKey == null이라면 myFKey = dbred.push(). key 그리고 branch가 동일 할 경우 -> else는 이미 존재하는 myFKey의 값을 설정한다. 이렇게하면 firebase에 여러 개의 레코드가 생성되는 것을 방지 할 수 있습니다. 그리고 파이어 스토어 (firestore)를 살펴보십시오. 어쩌면 당신은 더 좋아할 것입니다. – AIon

+0

'$ ("# comment-form")'은 id로 올바른 양식을 얻습니다. –