Asked Apr 26th, 2018 5:11 p.m. 146 1 2
  • 146 1 2
+2

Selector in Jquery

Share
  • 146 1 2

Mục đich của bài question này là tại e đang làm hệ thống comment sử dụng Ajax.

<form action="{{ URL::route('reply.create', [$comment->id, $curPost->id]) }}" method="POST" class="form-comment">
    <textarea name="reply-comment" id="content-comment" class="form-control"
    <div class="form-group clearfix">
        <button class="btn btn-primary pull-right" id="content-comment-reply" type="submit">Post Reply</button>
    </div>
</form>
<!-- End form 1 -->
<form action="{{ URL::route('reply.create', [$comment->id, $curPost->id]) }}" method="POST" class="form-comment">
    <textarea name="reply-comment" id="content-comment" class="form-control"
    <div class="form-group clearfix">
        <button class="btn btn-primary pull-right" id="content-comment-reply" type="submit">Post Reply</button>
    </div>
</form>
<!-- End form 2 -->
<form action="{{ URL::route('reply.create', [$comment->id, $curPost->id]) }}" method="POST" class="form-comment">
    <textarea name="reply-comment" id="content-comment" class="form-control"
    <div class="form-group clearfix">
        <button class="btn btn-primary pull-right" id="content-comment-reply" type="submit">Post Reply</button>
    </div>
</form>
<!-- End form 3 -->

etc form... etc forms....

Em có 3 ví dụ ạ, còn có thể có rất nhiều form khác nữa... nhưng nội dung tương tự như thế ạ..

Vậy Giờ e selector kiểu sao để khi e nhấn vào button {Post Reply} thì nó sẽ lấy ra được giá trị của textarea đang query ạ...

Thực ra mục tiêu của e không phải là lấy giá trị, mà là dùng nó để gửi request Ajax ạ, và đang bị vướng ở phần này ạ..

Ai có thể cho e biết được kg ạ...

Em cám ơn.

2 ANSWERS


Answered Apr 27th, 2018 12:54 a.m.
Accepted
+5

Quy tắc là bạn phải đi từ gốc của element được click. 😃

$(function() {
    $('button').click(function() {
        var textArea = $(this).parents('form').find('textarea[name=reply-comment]').val();
       console.log(textArea);
    });
});
Share
Avatar Jimmy Nguyen @minhtuancnttk39
Apr 27th, 2018 6:46 a.m.

Em đã làm được theo cách của anh ạ.. Em cám ơn.

0
| Reply
Share
Answered Apr 27th, 2018 1:03 a.m.
+3

Giải pháp làm nhiều form như thế kia có vẻ không ổn vì phải trả lại nhiều html dư thừa. Tuy nhiên nếu đang làm cách trên thì mình nghĩ bạn có thể sử dụng event onsubmit của form tag thay vì bắt sự kiện click button.

<form method="POST" class="form-comment" onsubmit="alert(1)">
    <textarea></textarea>
    <div class="form-group clearfix">
        <button type="submit">Post Reply</button>
    </div>
</form>
Share
Viblo
Let's register a Viblo Account to get more interesting posts.