Javascript 提交按钮不存在';无法使用iLife重新启用
我是一个第一次海报和初学者程序员。我这里有一些代码在IIFE之外工作,但当我把它放在IIFE中时,会破坏提交函数。我正在做的是制作一个简单的联系人表单,禁用提交按钮,直到所有字段中至少有1个字符。在这一点上,我对Javascript/jQuery的了解还不够长,无法对代码进行重构以使其正常工作。我很确定有一个简单的答案,我只是还没看到。提前感谢 JavaScriptJavascript 提交按钮不存在';无法使用iLife重新启用,javascript,Javascript,我是一个第一次海报和初学者程序员。我这里有一些代码在IIFE之外工作,但当我把它放在IIFE中时,会破坏提交函数。我正在做的是制作一个简单的联系人表单,禁用提交按钮,直到所有字段中至少有1个字符。在这一点上,我对Javascript/jQuery的了解还不够长,无法对代码进行重构以使其正常工作。我很确定有一个简单的答案,我只是还没看到。提前感谢 JavaScript (function() { function init() { window.onload = chec
(function() {
function init() {
window.onload = checkform;
}
function checkform() {
var validateBeforeSubmit = document.forms["contactForm"].elements;
var cansubmit = true;
for (var i = 0; i < validateBeforeSubmit.length; i++) {
if (validateBeforeSubmit[i].value.length == 0)
cansubmit = false;
}
document.getElementById('submitButton').disabled = !cansubmit;
}
init();
})();
(函数(){
函数init(){
window.onload=checkform;
}
函数检查表(){
var validatebeforsubmit=document.forms[“contactForm”].elements;
var cansubmit=true;
for(var i=0;i
您正在将您的checkform功能分配给onload事件。当页面加载时,它只运行一次
你需要把它映射到其他东西。
可能是因为输入的改变 您正在将您的checkform函数分配给onload事件。当页面加载时,它只运行一次 你需要把它映射到其他东西。
可能是因为输入的改变 您正在将onload事件绑定到checkform函数,但是谁将触发onload事件??浏览器已触发此事件,因此显然您的函数永远不会被调用。您正在将onload事件绑定到checkform函数,但谁将触发onload事件??浏览器已触发此事件,因此显然您的函数永远不会被调用。
(function(){
(function() {
function init() {
window.onload = checkform;
}
function checkform() {
var validateBeforeSubmit = document.forms["contactForm"].elements;
var cansubmit = true;
for (var i = 0; i < validateBeforeSubmit.length; i++) {
if (validateBeforeSubmit[i].value.length == 0) cansubmit = false;
validateBeforeSubmit[i].oninput=checkform;//the line you need
}
document.getElementById('submitButton').disabled = !cansubmit;
}
init();
})();
函数init(){
window.onload=checkform;
}
函数checkform(){
var validatebeforsubmit=document.forms[“contactForm”].elements;
var cansubmit=true;
for(var i=0;i
我想你以前有过这样的经历:
<input onchange="checkform">
这将不再有效,因为checkform不再在全局范围内,它现在只通过闭包绑定…(function(){
函数init(){
window.onload=checkform;
}
函数checkform(){
var validatebeforsubmit=document.forms[“contactForm”].elements;
var cansubmit=true;
for(var i=0;i
我想你以前有过这样的经历:
<input onchange="checkform">
这将不再有效,因为checkform不再在全局范围内,它现在只通过闭包绑定…这在填写所有字段并单击最后一个填写的字段后解决了问题。是否有一种方法可以在字段中有字符时立即启用提交,而不是先单击它?这解决了在填写所有字段并单击最后一个填写的字段后的问题。是否有一种方法可以在字段中有字符时立即启用提交,而不是首先单击它?对,因此我需要再次调用它来检查所有字段,对吗?没有。基兰的说法可能是错误的。iife执行得非常快,它应该在启动之前绑定onload…对,所以我需要再次调用它来检查所有字段,对吗?不。基兰的说法可能是错误的。iife执行得非常快,它应该在启动前绑定onload。。。