Я работаю с Laravel 5 и у меня есть следующие HTML-страницы:
HTML 1
<div class="row">
@foreach($postList as $post)
@include('Pages.Post.postInGroup', ['post'=>$post, 'commentsList'=>$commentsList])
@endforeach
</div>
HTML 2
<form id="msform" action="{{route('comments.store')}}" method="post">
{{ csrf_field() }}
<div class="row align-items-center">
<!-- nascondere bottoni per visitatori -->
<div class="col-3 col-sm-3 col-md-2 col-lg-2 col-xl-1" style="display: inline-block;">
<img src="{{url(Auth::user()->picture_path)}}" style="border-radius: 50%;" width="30" height="30" alt="User Picture">
</div>
<div class="col-9 col-sm-9 col-md-6 col-lg-6 col-xl-9" style="display: inline-block;">
<textarea class="form-control" placeholder="Post a comment" id="comment_content" name="comment_content" rows="1"></textarea>
</div>
<div class="col-1 col-sm-1 col-md-1 col-lg-1 col-xl-1" > <!--style="display: inline-block; margin-right: 1px;"-->
<input type="submit" name="submit" class="btn btn-primary" value="Comment" style="background-color: #228B22;"/>
<input type="hidden" value="{{$post->id}}" name="postId" id="postId">
</div>
</div>
</form>
Как видите, HTML 1
может повторять код HTML 2
несколько раз в зависимости от количества объектов в $postList
.
HTML 2
содержит изображение, за которым следуют textarea
и submit button
.
То, что я хочу сделать, это disable
кнопка отправки, только если соответствующая текстовая область пуста.
Например, я ездил на велосипеде 3 раза, поэтому у меня будет:
- Textarea - Кнопка
- Textarea - Кнопка
- Textarea - Кнопка
Если я захочу написать во 2-й текстовой области, тогда мне нужно будет enable
только кнопку рядом с этой текстовой областью. Я надеюсь, что моя проблема ясна.
Предупреждение , я не могу изменить имя текстовой области, потому что я использую его внутри контроллера для получения данных из текстовой области следующим образом: $comment_content = $request->input('comment_content');
и я хочу отключить / включить только отправку кнопки, которые я выложил в HTML 2
.
EDIT
NEW HTML 2
<form id="msform" action="{{route('comments.store')}}" method="post">
{{ csrf_field() }}
<div class="row align-items-center">
<div class="col-3 col-sm-3 col-md-2 col-lg-2 col-xl-1" style="display: inline-block;">
<img src="{{url(Auth::user()->picture_path)}}" style="border-radius: 50%;" width="30" height="30" alt="User Picture">
</div>
<div class="col-9 col-sm-9 col-md-6 col-lg-6 col-xl-9" style="display: inline-block;">
<textarea class="form-control" placeholder="Post a comment" id="comment_content {{$post->id}}" name="comment_content" rows="1"></textarea>
</div>
<div class="col-1 col-sm-1 col-md-1 col-lg-1 col-xl-1" >
<input type="submit" name="comment_button {{$post->id}}" class="btn btn-primary" value="Comment" style="background-color: #228B22;"/>
<input type="hidden" value="{{$post->id}}" name="postId" id="postId">
<input type="hidden" value="{{$theGroup->id}}" name="groupId" id="groupId">
</div>
</div>
</form>
Теперь, каждый раз, когда выполняется цикл @foreach
, текстовая область id
будет comment_content {{$post->id}}
, а name
кнопки отправки будет comment_button {{$post->id}}
, чтобы гарантировать динамизм элементов, как было запрошено в вопрос. Так что теперь, если я повторю цикл три раза, у меня будет:
Textarea (id = "comment_content 1") - кнопка (name = "comment_button 1")
Textarea (id = "comment_content 2") - кнопка (name = "comment_button 2")
Textarea (id = "comment_content 3") - кнопка (name = "comment_button 3")