Skip to main content

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 name
  • id(?string $id) - Set field ID
  • class(?string $class) - Set CSS class
  • placeholder(?string $placeholder) - Set placeholder text
  • value(mixed $value) - Set field value (usually not used for security)

Common Properties​

  • required() - Make field required
  • disabled() - Disable the field
  • readonly() - Make field readonly
  • autofocus() - Auto-focus on page load

Field Labels​

  • label(?string $label) - Set field label
  • info(?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