表单验证出错与数据上报跟踪实例页面
回到相关文章 »效果:
提前打开控制台,Network → Img,clear已有请求,然后点击注册查看请求
代码:
CSS代码:
.track:invalid { background: url(./pixel.gif?action=regist&status=invalid); } .track:valid { background: url(./pixel.gif?action=regist&status=valid); }
HTML代码:
<form novalidate> <p>昵称:<input class="nickname" required></p> <p>邮箱:<input type="email" required></p> <p>性别:<input type="radio" id="male" name="sexy" value="male" required><label for="male">男</label> <input type="radio" id="female" name="sexy" value="female" required><label for="female">女</label> </p> <p><button type="submit">注册</button></p> </form>
JS代码:
document.forms[0].addEventListener('submit', function (event) { event.preventDefault(); // 上报成功与否 this.classList.add('track'); // 这个是不影响原生表单的提交行为,实际开发多走Ajax if (this.reportValidity()) { this.submit(); } setTimeout(function () { this.classList.remove('track'); }.bind(this), 0); });