2.0.2 • Published 5 years ago
@tomoeed/html-auto-check-element v2.0.2
<auto-check> Element
A form input validator
Installation
npm install @tomoeed/html-auto-check-element --saveUsage
<auto-check href="/check" msg='{"typeMismatch": "type mismatch", "valueMissing": "value mismatch", "all": "enter the correct email"}'>
<label for="email">Email</label>
<input id="email" name="email" required type="email">
</auto-check>Attributes
href服务端验证URLmsg验证错误提示信息 InvalidMessage
Events
auto-check:success验证成功document.addEventListener('auto-check:success', event => { const element = event.target; element.classList.add('is-successful'); });auto-check:error验证错误detail.response
document.addEventListener('auto-check:error', async event => { const {response} = event.detail; // server validate failed if (response instanceof Response) { const {message} = await response.json(); } // HTML constraint validation failed console.log(response); });auto-check:ajax-start开始服务器验证, 该事件可取消. 如果取消该事件将不会进行服务端验证auto-check:ajax-send发送网络请求之前detail.requestInit发送网络请求之前更改fetch请求参数
document.addEventListener('auto-check:send', event => { const {requestInit} = event.detail; requestInit.headers.append('X-Requested-With', 'XMLHttpRequest'); });auto-check:ajax-end网络请求已完成, 在auto-check:ajax-success与aut-check:ajax-error事件之前调度document.addEventListener('auto-check:ajax-end', event => { const element = event.target; element.classList.remove('is-loading'); });auto-check:ajax-success服务器返回状态码200 >= status < 300detail.responseFetch Response
document.addEventListener('auto-check:ajax-success', async event => { const element = event.target; element.classList.add('is-successful'); const response = await event.detail.response.json(); });auto-check:ajax-error服务器返回状态码200 < status >= 300detail.responseFetch Response
document.addEventListener('auto-check:ajax-error', async event => { const element = event.target; element.classList.add('is-errored'); const response = await event.detail.response.json(); });auto-check:network-error网络故障或任何阻止请求完成detail.error
document.addEventListener('auto-check:network-error', event => { console.log(event.detail.error.message); });