Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法摆脱html/javascript表单中的页面重新加载_Javascript_Html - Fatal编程技术网

无法摆脱html/javascript表单中的页面重新加载

无法摆脱html/javascript表单中的页面重新加载,javascript,html,Javascript,Html,我正在尝试设置一个表单,其中按钮填充输入字段,并且这些输入字段可以再次被其他“删除”按钮清空 这很有效,但我无法在特殊操作序列中解决一个问题: 如果我按“一”和“三”按钮,相应的输入表格就会正确填写,这就是我想要的 现在,如果在此之后我按下“删除A”按钮,则会发生两件不需要的事情之一: 如果第15行中存在命令event.preventDefault(),则(仅)第一个输入字段被正确清除,按钮被恢复。但当我再次按下“一”按钮时,完整的表格被清除,表格2中的“三”字消失了 如果命令event.p

我正在尝试设置一个表单,其中按钮填充输入字段,并且这些输入字段可以再次被其他“删除”按钮清空

这很有效,但我无法在特殊操作序列中解决一个问题:

如果我按“一”和“三”按钮,相应的输入表格就会正确填写,这就是我想要的

现在,如果在此之后我按下“删除A”按钮,则会发生两件不需要的事情之一:

  • 如果第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()
    ,因此页面正在刷新。尝试执行doing
    btn.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有太多的变通方法