0

在 Laravel4 + Bootstrap 2.3.1 中,我有一个正确使用验证的表单。必须填写三个字段:姓名 - 电子邮件 - 电话。

如果没有插入任何内容,或者电子邮件格式不正确,则会显示错误消息。但除此之外,我想让这些字段变为红色,以更好地显示错误所在。我如何在 Laravel + Bootstrap 中做到这一点?

这是具有三个必填字段的表格:

<form name="room" method="post"  class="narrow_width">

 <label><span><i class="icon-user"></i></span> Name <span class="color-red">*</span></label>
  {{ Form::text('name',Input::old('name'), array('class' => 'span7 border-radius-none')) }}

  <label><span><i class="icon-envelope-alt"></i></span> Email <span class="color-red">*</span></label>
  {{ Form::text('email',Input::old('email'), array('class' => 'span7 border-radius-none')) }}

  <label><span><i class="icon-phone"></i></span> Phone number <span class="color-red">*</span></label>          
  {{ Form::text('phone',Input::old('phone'), array('class' => 'span7 border-radius-none')) }}  

  <p><button type="submit" name="submit" class="btn-u">Send Message</button></p>
 </form>

非常感谢!

4

5 回答 5

4

I don't think there's an easy way to do this with the laravel Form class. I personally use my own package https://github.com/AndreasHeiberg/theme for this. You can use it if you wan't but it's subject to change.

Anyway raw code to do this is the following:

<div class="control-group {{ $errors->has($id) ? 'error' : false }}">
    <label for="{{ $id }}" class="control-label">{{ $text }} {{ $required ? '<span class="required-red">*</span>' : ''}}</label>
    <div class="controls">
        <input type="{{ $type }}" id="{{ $id }}" name="{{ $id }}" value="{{ $value }}">
        @if ($helpText)
            <span class='help-inline'>{{ $helpText }}</span>
        @endif
        @foreach($errors->get($id) as $message)
            <span class='help-inline'>{{ $message }}</span>
        @endforeach
    </div>
</div>

This being the important part

<div class="control-group {{ $errors->has($id) ? 'error' : false }}">

You can wrap this up in a form macro http://laravel.com/docs/html#custom-macros use a helper function or my package to do this.

With my package you would just use:

+@formText('name')
于 2013-11-12T09:08:41.760 回答
1

您可以轻松地使用表单宏,这里有一堆可用于 Bootstrap 3:

http://forums.laravel.io/viewtopic.php?id=11960

希望这可以帮助...

于 2013-11-12T22:36:21.670 回答
0

如果您的意图是让错误更明显地显示在哪里,您可以将从 Laravel 验证错误返回的消息文本包装在一个跨度中并为其设置样式。

{{ $errors->first('email', "<span class='error'>:message</span>")}}

:message您的错误消息的“占位符”在哪里。.error然后您可以根据需要为跨度提供任何样式。查看此Laracast 课程了解更多详情(3:10 之后)。

于 2014-10-19T13:06:20.763 回答
0

感谢您的努力,尤其是@AndHeiberg。为简单起见,我决定放弃 Laravel-Bootstrap 验证并改用 jquery 插件:https ://github.com/jzaefferer/jquery-validation

主要原因是它非常易于使用。调用插件并将“必需”插入标签就足够了。插件将完成所有其余的工作,以红色突出显示该字段并显示该字段的错误消息。

于 2013-11-12T10:09:34.703 回答
-1

在引导程序中,您可以创建 ID 为“inputError”的错误字段:

<input type="text" class="form-control" id="inputError">
于 2013-11-12T09:05:43.683 回答