gpt4 book ai didi

javascript - Laravel - 在使用 jQuery AJAX 提交表单之前检查用户名是否已存在

转载 作者:行者123 更新时间:2023-11-28 15:16:38 25 4
gpt4 key购买 nike

我制作了一个包含很多字段的注册表。由于当我提交数据并且验证器因错误而重定向回来时,某些输入为空,并且用户必须浪费时间重新填充它们,因此我想实现一些前端验证。我一直在检查用户名是否已在按下提交按钮时使用,因为我不是 AJAX 专家。

在 AuthController 中,我创建了一个函数,该函数返回一个 Json,其中包含与数据库中用户名是否存在相关的响应。

class UserAuthController extends Controller
{
public function isUserNameInUse( $username )
{
if (Auth::where('username', $username) != null){
return [ 'is_used' => 1 ];
}

return [ 'is_used' => 0 ];
}
}

在routes.php中有这些行:

Route::group([ 'as' => 'api', 'prefix' => 'api', 'namespace' => 'Api'], function () {

Route::group([ 'as' => 'auth', 'prefix' => 'auth'], function () {
Route::any('/is_username_in_use/{username}', [
'as' => 'isUserNameInUse',
'uses' => 'UserAuthController@isUserNameInUse']);


});

});

View 是这样的(只是表单的一部分):

<form action="{{ route('web.company.postSignup') }}" method="post" id="signup-form" class="form-horizontal">
{!! csrf_field() !!}
@include( 'errors.handler' )

<label for="username">
{{ _('Username*') }} </label>
<input type="text" class="form-control" name="username" id="username"
value="{{ Input::old('username') }}" required>

<label for="password">
{{ _('Password*') }}
</label>

<input type="password" class="form-control" name="password" id="password"
value="{{ Input::old('password') }}" onchange="form.confirmPassword.pattern = this.value;"
required>

<label for="confirmPassword">
{{ _('Confirm Password*') }}
</label>

<input type="password" class="form-control" name="confirmPassword" id="confirmPassword" required>
<button class="btn btn-warning" id="submit-btn" type="submit">{{ _('Sign Up') }}</button>

</form>

这是脚本,目前我只尝试记录 Controller 的响应,但它会打印任何内容。

$(document).ready(function () {
$('form#signup-form').submit(function () {
var input_username = $('input[name=username]').val();
console.log(input_username);

$.getJSON('/api/auth/is_username_in_use/' + input_username, function (json) {

console.log(json);


});
return false;
});

});

最佳答案

无需明确检查用户名是否正在使用。您可以跳过这一部分,而是在存储用户数据时相应地验证它们。

这方面的一个例子可能是

public function store(Request $request)
{
$this->validate($request, [
'username' => 'required|unique:users',
'password' => 'required|confirmed'
]);

// process your logic
}

这样,如果验证失败,您将获得一个包含错误消息的 json 响应对象。

<小时/>

请注意,如果您使用的是 Laravel 5,这将起作用。如果您使用 4.* refer to documentation用于验证部分。

关于javascript - Laravel - 在使用 jQuery AJAX 提交表单之前检查用户名是否已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33616940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com