您的位置:首页 > 科技 > IT业 > scratch编程网站_百度引擎提交入口_哈尔滨网站优化流程_百度系app

scratch编程网站_百度引擎提交入口_哈尔滨网站优化流程_百度系app

2025/3/19 12:46:04 来源:https://blog.csdn.net/lllsure/article/details/146275453  浏览:    关键词:scratch编程网站_百度引擎提交入口_哈尔滨网站优化流程_百度系app
scratch编程网站_百度引擎提交入口_哈尔滨网站优化流程_百度系app

我的问题正如标题所见,点击一次无效,再点一次就好了。

这是我原来的代码:

<div class="login-form"><p>New user?<a href="register.html">Register here!</a></p><form><div class="form-text"><input type="text" id="username" class="text" value="USERNAME" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'USERNAME';}" ><input type="password" id="password" value="Password" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Password';}"></div><input type="submit" id="submit" value="登录" ></form>
</div>

这是我修改后的代码:

<div class="login-form"><p>New user?<a href="register.html">Register here!</a></p><div class="form-text"><input type="text" id="username" class="text" value="USERNAME" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'USERNAME';}" ><input type="password" id="password" value="Password" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Password';}"></div><input type="submit" id="submit" value="登录" >
</div>

可以看到,我把form标签删了。

产生这个问题的原因是:我们点击登录后,form会默认提交表单,服务器响应后会刷新页面,根本就没有执行我们写的 JavaScript  代码。

如果页面中有一些初始化的 JavaScript 代码或者事件绑定逻辑依赖于页面加载完成后执行,而第一次点击提交时,这些逻辑还未完全准备好,就可能导致第一次点击无效。第二次点击时,页面已经完成了初始化,所以点击有效。

这个结论从下面的例子也能证明:

就是我先故意没写用户名和密码提交一次,提交这一次后,下一次再提交就是有效的。原因其实就是我们故意提交的那次错误,页面完成了初始化。

还有,如果我们提交了一次,以后无论提交多少次都行,这也能证明了是因为没有初始化而导致我们第一次提交没有效果。

结论:form标签的锅,以后使用的时候要多加小心。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com