Password Field
The password field provides a secure input for password entry. It masks the input characters for security and includes enhanced UI features for password visibility toggling.
Namespace
JobMetric\CustomField\CustomFields\Password\Password
Overview
The password field renders as an HTML <input type="password"> element. The package provides enhanced password UI with optional visibility toggle functionality, making it easier for users to verify their password while maintaining security.
When to Use
Use the password field when you need:
- Password input - User passwords, authentication
- Secure data entry - Any sensitive information that should be masked
- Login forms - User authentication
- Registration forms - New user password creation
- Password change forms - Password update functionality
Example scenarios:
- User login forms
- Registration forms
- Password reset forms
- Account settings (password change)
- Admin authentication
Builder Method
CustomFieldBuilder::password()
Available Methods
Common Attributes
name(string $name, ?string $uniq = null)- Set field nameid(?string $id)- Set field IDclass(?string $class)- Set CSS classplaceholder(?string $placeholder)- Set placeholder textvalue(mixed $value)- Set field value (usually not used for security)
Common Properties
required()- Make field requireddisabled()- Disable the fieldreadonly()- Make field readonlyautofocus()- Auto-focus on page load
Field Labels
label(?string $label)- Set field labelinfo(?string $info)- Set help/info text
Validation
validation(array|string $rules)- Set validation rules
Basic Example
use JobMetric\CustomField\Facades\CustomFieldBuilder;
$password = CustomFieldBuilder::password()
->name('password')
->label('Password')
->info('Enter your password')
->required()
->placeholder('Enter password')
->build();
$result = $password->toHtml();
echo $result['body'];
Advanced Examples
Login Form Password
$password = CustomFieldBuilder::password()
->name('password')
->label('Password')
->required()
->placeholder('Enter your password')
->autofocus()
->build();
Registration Form with Validation
$password = CustomFieldBuilder::password()
->name('password')
->label('Password')
->info('Minimum 8 characters, including uppercase, lowercase, and number')
->required()
->validation(['required', 'string', 'min:8', 'regex:/[A-Z]/', 'regex:/[a-z]/', 'regex:/[0-9]/'])
->placeholder('Create a strong password')
->build();
Password Confirmation
$password = CustomFieldBuilder::password()
->name('password')
->label('Password')
->required()
->build();
$confirmPassword = CustomFieldBuilder::password()
->name('password_confirmation')
->label('Confirm Password')
->required()
->validation(['required', 'same:password'])
->build();
Password Change Form
$currentPassword = CustomFieldBuilder::password()
->name('current_password')
->label('Current Password')
->required()
->build();
$newPassword = CustomFieldBuilder::password()
->name('new_password')
->label('New Password')
->required()
->validation(['required', 'string', 'min:8', 'different:current_password'])
->build();
Rendering
HTML Output
$result = $password->toHtml();
// $result contains:
// [
// 'body' => '<input type="password" ...>',
// 'scripts' => [],
// 'styles' => []
// ]
echo $result['body'];
Array Output
$array = $password->toArray();
// Returns complete field configuration
HTML Output
The password field renders as:
<input
type="password"
name="password"
id="password"
class="form-control"
placeholder="Enter password"
required
/>
Enhanced UI may include:
<div class="password-field">
<input type="password" name="password" id="password" />
<button type="button" class="toggle-visibility">Show</button>
</div>
Security Considerations
- Never pre-fill password fields with values
- Always use HTTPS for password transmission
- Implement server-side validation
- Use strong password requirements
- Consider password strength indicators
Related Documentation
- Field Attributes - All available attributes
- Field Properties - Field properties
- CustomFieldBuilder - Builder API reference