基于onclick事件的JS表单字段验证失效问题求助
嘿,我一眼就揪出问题所在啦!你点击按钮无响应的核心原因是:在onclick事件处理函数中,你仅仅定义了validatesiteone验证函数,但没有主动调用它。点击按钮时,浏览器只会执行函数定义的代码,根本不会触发验证或面板切换的逻辑~
修复后的代码
下面是修正后的完整代码,我还顺便优化了一些细节:
document.getElementById("addnewjob_sitetwo").onclick = function(){ // 关键:调用我们定义的验证函数 validatesiteone(); function validatesiteone() { var jobTitleInput = document.forms["add-new-job"].jobtitle.value; // 用trim()处理用户只输入空格的情况,让验证更严谨 if (!jobTitleInput.trim()) { alert("Name must be filled out"); return false; } else { $('#newjobcontent-siteone').fadeOut(200); // 把内部函数改成匿名函数,简化代码结构 setTimeout(function(){ $('#newjobcontent-sitetwo').fadeIn(200); $('#newjobcontent-siteone').css("display", "none"); }, 201); } } };
额外的小建议
- 除了自定义验证,你还可以给
jobtitle输入框加上required属性,作为前端验证的兜底:<input class="form-control" placeholder="Jobtitel - z.B. Rasen mähen, Malerarbeiten, etc..." id="jobtitle" name="jobtitle" required> - 尽量避免在函数内部嵌套过多函数,这样代码可读性会更高,后续维护也更方便
内容的提问来源于stack exchange,提问作者Andrewstevens
相关产品推荐
相关产品推荐

