【问题标题】:Input validation won't prompt errors输入验证不会提示错误
【发布时间】:2016-10-31 01:32:39
【问题描述】:

如果我单击提交按钮,我的验证似乎无法正常工作,它只是刷新浏览器并且不会验证我的输入,或者我不确定 Javascript 是否导致验证无法工作。首先,我将根据用户的选项使用empty()append() 函数从其他文件中附加我的注册表单。

@section ('page-script')

<script>

    $(document).on("click", "#register", function ()
    {
        $.get("accountRegister", function (data)
        {
            $("#accountBottomContainer").empty();
            $("#accountBottomContainer").append(data);
        });
    });
 </script>

 @endsection

正如您在下面看到的,我将 register.blade.php 附加到名为 #accountBottomContainerpanel-body

如果用户点击register 按钮后,我将在此处附加我的register.blade.php 按钮,它将附加具有id = accountBottomContainerpanel-body

@section ('content')

<div class = "row">

    <div class = "col-xs-12 col-md-8">

        <div class = "panel panel-default">

            <div class = "panel-heading">

                <h2>Account Dashboard</h2>
                <hr>

            </div>

            <div class = "panel-body">

                <button type = "button" class = "btn btn-info" id = "register">Register Employee</button>
                <button type = "button" class = "btn btn-info" id = "searchEmployee">Search Employee</button>

                <div class = "row">
                <br>
                    <div class="col-md-10">

                        <div class = "panel panel-default">

                            <div class = "panel-body" style = "height: 500px" id = "accountBottomContainer">


                            </div>

                        </div>

                    </div>
                </div> 

            </div>

        </div>

    </div>

</div>

@endsection

带有验证的表单

在这里,我循环遍历每个错误以检查用户错过填写其中一个文本字段的位置。

@if (count($errors) > 0)


<div class = "row">
    <div class = "col-md-6">
        <ul>
            @foreach($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
</div>

@endif
<form class = "form-vertical" role = "form" method = "post" action = "{{ route ('account.accountRegister') }}">


    <div class = "form-group">

        <label for = "email" class = "control-label">Email Address</label>
        <input type = "text" name = "email" class = "form-control" id = "email">

    </div>

    <div class = "form-group">

        <label for = "username" class = "control-label">Username</label>
        <input type = "text" name = "username" class = "form-control" id = "username">

    </div>



    <div class = "form-group">

        <label for = "password" class = "control-label">Password</label>
        <input type = "password" name = "password" class = "form-control" id = "password">

    </div>

    <div class = "form-group">

        <button type = "submit" class = "btn btn-default">Sign Up</button>

    </div>

    <input type = "hidden" name = "_token" value = "{{ Session::token() }}">

</form>

控制器

public function postRegister(Request $request)
{
    $this->validate($request, [
                            //This will be unique in users table
        'email' => 'required|unique:users|email|max:255',
        'username' => 'required|unique:users|alpha_dash|max:20',
        'password' => 'required|min:6',
    ]);
 }

路线

Route::get('/accountRegister',
[
    'uses' => '\App\Http\Controllers\AccountController@getRegister',
    'as' => 'account.accountRegister',
]);

Route::post('/accountRegister', 
[
    'uses' => '\App\Http\Controllers\AccountController@postRegister',
]);

【问题讨论】:

  • 请考虑在您的 HTML 属性中等号前后没有空格。它提高了可读性! (注意:这不是您问题的解决方案,只是一个建议):stackoverflow.com/questions/3551541/…

标签: javascript php jquery validation laravel


【解决方案1】:

在您的 javascript 上,您使用 #register id,但我在 html 端看不到它。这是一个错误吗? 你应该使用:

$(document).on("submit", "#theIdOfYourFormTag", function () {

【讨论】:

  • 你有链接让我试试吗?
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
相关资源
最近更新 更多