如何发布有条件的已禁用/只读输入字段?

时间:2019-07-11 14:27:52

标签: php html laravel laravel-5 laravel-4

如果尚未按下按钮,我试图使输入字段为禁用或只读,但是在添加使其变为禁用或只读的条件之后,我在将其发布/提交到数据库时遇到了问题

    <form action="{{ route('amber.timestone.home.start', $task->id) }}" method="POST" class="align-center">
                                {{csrf_field()}}
                            <td>
                                <input class="my-2" type="text" name="ref" value="{{ $task->ref }}"
                                    @if(empty($task->start))
                                        readonly
                                    @endif
                                >


public function startTask($id)
    {
        $user = Task::find($id);
        $user->start = Carbon::now();
        $user->save();
        return back();
    }
public function endTask($id, Request $request)
    {
        $user = Task::find($id);
        $user->end = Carbon::now();
        $start = Carbon::parse($user->start);
        $end = Carbon::parse($user->end);
$user->ref = request('ref');
        $user->remarks = request('remarks');
        $user->campaign = request('campaign');
        $user->type = request('type');
            $hours = $end->diffInHours($start);
            $minutes = $end->diffInMinutes($start);
            $seconds = $end->diffInSeconds($start);
            $user->duration = $hours . ':' . $minutes . ':' . $seconds;
            $user->update();
            return back();
        }

我尝试添加与那些处于只读状态仍无法正常工作的人相同名称的隐藏

3 个答案:

答案 0 :(得分:3)

禁用字段不随请求一起发布,但是您可以添加只读属性。

您可以做的另一件事是,出于UI目的禁用该字段,并在下面添加具有相同名称和值的隐藏输入。

答案 1 :(得分:0)

HTML是一种标记语言,它突出显示了数据的语义,而不是显示数据的方式(例如,使用<strong>使文本加粗是完全错误的方式)。因此,您应该使用CSS定制的文本容器(主要是<div><span>)对其进行封装并保持只读状态。然后,就像Adam abdul shakoor所建议的那样,您可以使用具有相同值的隐藏输入。 您还应该考虑使用VueJS(已经包装在Laravel中),它的数据驱动方法使这种事情变得微不足道,可以使容器和输入的内容保持同步。

答案 2 :(得分:0)

您怎么看?如果您有需要返回的值,请将其放在隐藏的输入字段中。因此,也许可以使用CSS创建一个伪字段。但是,如果您不想发送任何数据,只是为了显示它,您可能根本就不会在隐藏的输入字段中包含该值。