无法摆脱html/javascript表单中的页面重新加载
我正在尝试设置一个表单,其中按钮填充输入字段,并且这些输入字段可以再次被其他“删除”按钮清空 这很有效,但我无法在特殊操作序列中解决一个问题: 如果我按“一”和“三”按钮,相应的输入表格就会正确填写,这就是我想要的 现在,如果在此之后我按下“删除A”按钮,则会发生两件不需要的事情之一:无法摆脱html/javascript表单中的页面重新加载,javascript,html,Javascript,Html,我正在尝试设置一个表单,其中按钮填充输入字段,并且这些输入字段可以再次被其他“删除”按钮清空 这很有效,但我无法在特殊操作序列中解决一个问题: 如果我按“一”和“三”按钮,相应的输入表格就会正确填写,这就是我想要的 现在,如果在此之后我按下“删除A”按钮,则会发生两件不需要的事情之一: 如果第15行中存在命令event.preventDefault(),则(仅)第一个输入字段被正确清除,按钮被恢复。但当我再次按下“一”按钮时,完整的表格被清除,表格2中的“三”字消失了 如果命令event.p
- 如果第15行中存在命令event.preventDefault(),则(仅)第一个输入字段被正确清除,按钮被恢复。但当我再次按下“一”按钮时,完整的表格被清除,表格2中的“三”字消失了
- 如果命令event.preventDefault()从第15行中删除,那么只要我按下“Delete A”,整个表单就会被清除,表单2中的单词“three”也会消失
false
值以阻止表单提交的问题。事实上,我所有的函数都返回false
值
函数evt_r(){
var task=document.getElementById(“任务”+参数[0]);
var tasklab=参数[0];
var text=Array.from(参数).slice(1)
var length=task.getElementsByTagName(“按钮”).length-1;
event.preventDefault()
//删除现有按钮
for(设i=0;i=0;i--){
btn=document.createElement(“按钮”);
btn.innerHTML=文本[i];
btn.onclick=“evt_389;”+字符串(任务标签)+“389;”+字符串(i)+“()”;
btn.id=“id\u btn\u”+字符串(任务标签)+“\u”+字符串(i);
task.insertBefore(btn,task.firstChild);
task.children[0].style.marginRight=“5px”;
}
document.getElementById(“id_task_”+字符串(tasklabel)).value=”“;
返回false;
}
函数evt_0_0(){
var elem=document.getElementById(“id_btn_0_0”);
event.preventDefault()
elem.parentNode.removeChild(elem);
document.getElementById(“id_任务_0”).value=document.getElementById(“id_任务_0”).value+1
返回false;
}
函数evt_0_1(){
var elem=document.getElementById(“id_btn_0_1”);
event.preventDefault()
elem.parentNode.removeChild(elem);
document.getElementById(“id_任务_0”).value=document.getElementById(“id_任务_0”).value+2
返回false;
}
函数evt_1_0(){
var elem=document.getElementById(“id_btn_1_0”);
event.preventDefault()
elem.parentNode.removeChild(elem);
document.getElementById(“id_任务_1”).value=document.getElementById(“id_任务_1”).value+“三”
返回false;
}
函数evt_1_1(){
var elem=document.getElementById(“id_btn_1_1”);
event.preventDefault()
elem.parentNode.removeChild(elem);
document.getElementById(“id_任务_1”).value=document.getElementById(“id_任务_1”).value+4
返回false;
}
一
二
删除
三
四
删除B
在evt\u r()中单击btn.onc中的初始化问题。您正在为其分配一个字符串。由于新按钮位于表单中,并且在本例中未调用event.preventDefault()
,因此页面正在刷新。尝试执行doingbtn.onclick=new函数(“evt_389;”+String(tasklab)+“389;”+String(i)+“()”代码>取而代之。因此,您的html变成:
函数evt_r(){
var task=document.getElementById(“任务”+参数[0]);
var tasklab=参数[0];
var text=Array.from(参数).slice(1)
var length=task.getElementsByTagName(“按钮”).length-1;
event.preventDefault();
//删除现有按钮
for(设i=0;i=0;i--){
btn=document.createElement(“按钮”);
btn.innerHTML=文本[i];
btn.onclick=new函数(“evt_389;”+字符串(tasklab)+“389;”+字符串(i)+“()”;
btn.id=“id\u btn\u”+字符串(任务标签)+“\u”+字符串(i);
task.insertBefore(btn,task.firstChild);
task.children[0].style.marginRight=“5px”;
}
document.getElementById(“id_task_”+字符串(tasklabel)).value=”“;
返回false;
}
函数evt_0_0(){
var elem=document.getElementById(“id_btn_0_0”);
event.preventDefault()
elem.parentNode.removeChild(elem);
document.getElementById(“id_任务_0”).value=document.getElementById(“id_任务_0”).value+1
返回false;
}
函数evt_0_1(){
var elem=document.getElementById(“id_btn_0_1”);
event.preventDefault()
elem.parentNode.removeChild(elem);
document.getElementById(“id_任务_0”).value=document.getElementById(“id_任务_0”).value+2
返回false;
}
函数evt_1_0(){
var elem=document.getElementById(“id_btn_1_0”);
event.preventDefault()
elem.parentNode.removeChild(elem);
document.getElementById(“id_任务_1”).value=document.getElementById(“id_任务_1”).value+“三”
返回false;
}
函数evt_1_1(){
var elem=document.getElementById(“id_btn_1_1”);
event.preventDefault()
elem.parentNode.removeChild(elem);
document.getElementById(“id_任务_1”).value=document.getElementById(“id_任务_1”).value+4
返回false;
}
一
二
删除
三
四
删除B
这是否回答了您的问题?谢谢你的链接,但是没有,因为我已经包含了return false所有函数中的代码>命令。问题与按钮的动态创建有关,如下面的deepakchethan所述。
不属于那里(事实上没有任何东西属于那里),请将其放在
标记之前。很难确定代码的用途,因为:1。函数名是泛型的,2。选择器/属性看起来像HTML中的硬编码变量,3。所有函数基本上都做相同的事情。avo有太多的变通方法