텍스트 필드는 일반적으로 폼에서 사용됩니다. mdui 텍스트 필드에는 글자 수 세기, 폼 유효성 검사 등 다양한 기능이 포함되어 있습니다.
그리드 시스템과 함께 사용하여 폼 레이아웃을 구성할 수 있습니다.
페이지 로드가 완료되면 자동으로 초기화됩니다. 동적으로 생성된 텍스트 필드의 경우 mdui.mutation()을 호출하여 초기화해야 합니다.
강조 색상을 사용합니다.
<div class="mdui-textfield">
<input class="mdui-textfield-input" type="text" placeholder="User Name"/>
</div><div class="mdui-textfield">
<label class="mdui-textfield-label">User Name</label>
<input class="mdui-textfield-input" type="text"/>
</div><div class="mdui-textfield mdui-textfield-floating-label">
<label class="mdui-textfield-label">Email</label>
<input class="mdui-textfield-input" type="email" />
</div><div class="mdui-textfield">
<input class="mdui-textfield-input" type="text" disabled placeholder="User Name"/>
</div>
<!-- 고정 라벨 -->
<div class="mdui-textfield">
<label class="mdui-textfield-label">User Name</label>
<input class="mdui-textfield-input" type="text" disabled />
</div>
<!-- 플로팅 라벨 -->
<div class="mdui-textfield mdui-textfield-floating-label">
<label class="mdui-textfield-label">Email</label>
<input class="mdui-textfield-input" type="email" disabled />
</div>한 줄 텍스트 필드의 input 태그를 textarea 태그로 바꾸면 여러 줄 텍스트 필드가 됩니다. 여러 줄 텍스트 필드는 내용의 높이에 따라 텍스트 필드의 높이를 자동으로 조절합니다.
<div class="mdui-textfield">
<textarea class="mdui-textfield-input" placeholder="Description"></textarea>
</div>
<!-- 고정 라벨 -->
<div class="mdui-textfield">
<label class="mdui-textfield-label">Subject</label>
<textarea class="mdui-textfield-input"></textarea>
</div>
<!-- 플로팅 라벨 -->
<div class="mdui-textfield mdui-textfield-floating-label">
<label class="mdui-textfield-label">Message</label>
<textarea class="mdui-textfield-input"></textarea>
</div>
<!-- 비활성화 상태 -->
<div class="mdui-textfield mdui-textfield-floating-label">
<label class="mdui-textfield-label">Disabled</label>
<textarea class="mdui-textfield-input" disabled></textarea>
</div>textarea에 rows 속성을 추가하면 텍스트 필드의 높이가 고정됩니다.
<div class="mdui-textfield">
<textarea class="mdui-textfield-input" rows="4" placeholder="Message"></textarea>
</div><div class="mdui-textfield"></div> 내부 끝에 <div class="mdui-textfield-helper"></div> 요소를 추가하여 도움말 텍스트를 추가할 수 있습니다.
<div class="mdui-textfield">
<input type="email" class="mdui-textfield-input" placeholder="Email" />
<div class="mdui-textfield-helper">Helper Text</div>
</div><div class="mdui-textfield">
<i class="mdui-icon material-icons">email</i>
<input class="mdui-textfield-input" type="email" placeholder="Email"/>
</div>
<!-- 고정 라벨 -->
<div class="mdui-textfield">
<i class="mdui-icon material-icons">account_circle</i>
<label class="mdui-textfield-label">User name</label>
<input class="mdui-textfield-input" type="text" />
<div class="mdui-textfield-helper">Helper Text</div>
</div>
<!-- 플로팅 라벨, 여러 줄 텍스트 필드 -->
<div class="mdui-textfield mdui-textfield-floating-label">
<i class="mdui-icon material-icons">textsms</i>
<label class="mdui-textfield-label">Message</label>
<textarea class="mdui-textfield-input"></textarea>
</div>
<!-- 비활성화 상태 -->
<div class="mdui-textfield">
<i class="mdui-icon material-icons">lock</i>
<input class="mdui-textfield-input" type="text" placeholder="Disabled" disabled/>
</div><div class="mdui-textfield mdui-textfield-expandable">
<button class="mdui-textfield-icon mdui-btn mdui-btn-icon">
<i class="mdui-icon material-icons">search</i>
</button>
<input class="mdui-textfield-input" type="text" placeholder="Search"/>
<button class="mdui-textfield-close mdui-btn mdui-btn-icon">
<i class="mdui-icon material-icons">close</i>
</button>
</div>
<div class="mdui-textfield mdui-textfield-expandable mdui-float-right">
<button class="mdui-textfield-icon mdui-btn mdui-btn-icon">
<i class="mdui-icon material-icons">search</i>
</button>
<input class="mdui-textfield-input" type="text" placeholder="Search"/>
<button class="mdui-textfield-close mdui-btn mdui-btn-icon">
<i class="mdui-icon material-icons">close</i>
</button>
</div>mdui는 HTML5를 사용하여 폼 유효성 검사를 수행합니다. <div class="mdui-textfield"></div> 내부 끝에 <div class="mdui-textfield-error"></div> 요소를 추가하여 오류 메시지를 표시할 수 있습니다.
에러 메시지와 도움말 텍스트가 모두 포함된 경우 도움말 텍스트 요소를 에러 메시지 요소 뒤에 배치해야 합니다.
<div class="mdui-textfield mdui-textfield-floating-label">
<label class="mdui-textfield-label">User name</label>
<input class="mdui-textfield-input" type="text" required />
<div class="mdui-textfield-error">사용자 이름을 입력해 주세요</div>
</div>
<div class="mdui-textfield mdui-textfield-floating-label">
<label class="mdui-textfield-label">Email</label>
<input class="mdui-textfield-input" type="email" required />
<div class="mdui-textfield-error">이메일 형식이 잘못되었습니다</div>
</div>
<div class="mdui-textfield mdui-textfield-floating-label">
<label class="mdui-textfield-label">Password</label>
<input
class="mdui-textfield-input"
type="text"
pattern="^.*(?=.{6,})(?=.*[a-z])(?=.*[A-Z]).*$$"
required
/>
<div class="mdui-textfield-error">비밀번호는 대소문자를 포함하여 최소 6자 이상이어야 합니다</div>
<div class="mdui-textfield-helper">대소문자를 포함하여 최소 6자 이상의 비밀번호를 입력해 주세요</div>
</div>HTML5 폼 유효성 검사 외에도 JavaScript를 사용하여 검증할 수 있습니다.
유효하지 않은 텍스트 필드에 .mdui-textfield-invalid 클래스를 추가하고 유효해지면 해당 클래스를 제거하면 됩니다.
<div class="mdui-textfield mdui-textfield-invalid">
<label class="mdui-textfield-label">User name</label>
<input class="mdui-textfield-input" type="text" />
<div class="mdui-textfield-error">이미 존재하는 사용자 이름입니다</div>
</div><div class="mdui-textfield">
<label class="mdui-textfield-label">User name</label>
<input class="mdui-textfield-input" type="text" maxlength="20" />
</div>
<div class="mdui-textfield mdui-textfield-floating-label">
<label class="mdui-textfield-label">Email</label>
<input class="mdui-textfield-input" type="email" maxlength="60" />
<div class="mdui-textfield-error">이메일 형식이 잘못되었습니다</div>
</div>
<div class="mdui-textfield mdui-textfield-floating-label">
<label class="mdui-textfield-label">Message</label>
<textarea class="mdui-textfield-input" maxlength="140"></textarea>
</div>텍스트 필드가 동적으로 생성된 경우 mdui.mutation()을 호출하여 초기화해야 합니다.
텍스트 필드 내용을 동적으로 수정했다면 mdui.updateTextFields() 메서드를 호출하여 텍스트 필드를 다시 초기화해야 합니다. 이 메서드는 .mdui-textfield 클래스를 포함한 CSS 선택자, DOM 요소 또는 DOM 요소 배열을 매개변수로 받을 수 있으며, 지정된 텍스트 필드만 다시 초기화할 수 있습니다. 매개변수를 전달하지 않으면 페이지의 모든 텍스트 필드를 다시 초기화합니다.