Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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
Javascript 尝试使用form reset()函数重置输入字段,但不起作用_Javascript_Html_Function_Reset_Codepen - Fatal编程技术网

Javascript 尝试使用form reset()函数重置输入字段,但不起作用

Javascript 尝试使用form reset()函数重置输入字段,但不起作用,javascript,html,function,reset,codepen,Javascript,Html,Function,Reset,Codepen,我正在尝试创建一种发布系统,它在大多数情况下都能正常工作,但是当点击post按钮时,输入字段不会被重置。我尝试了很多不同的方法,但都没有成功,所以这里是我最后一次尝试的方法(CodePen设置了框架代码,这样就不会出现问题): HTML: 邮递 JavaScript: function write_below(form) { var input = document.forms.write.post.value; document.getElementById('displ

我正在尝试创建一种发布系统,它在大多数情况下都能正常工作,但是当点击post按钮时,输入字段不会被重置。我尝试了很多不同的方法,但都没有成功,所以这里是我最后一次尝试的方法(CodePen设置了框架代码,这样就不会出现问题):

HTML:


邮递

JavaScript:

function write_below(form) {
    var input = document.forms.write.post.value;
    document.getElementById('display').innerHTML += "<p>" + Math.floor(Math.random()*20) + ": " + input + "</p>" + "<br/>";
    return false;
}
function formReset(){
    document.getElementById("post").reset();
}
函数写入(表格){
var输入=document.forms.write.post.value;
document.getElementById('display').innerHTML+=“”+Math.floor(Math.random()*20)+“:“+input+”

”+“
”; 返回false; } 函数formReset(){ document.getElementById(“post”).reset(); }
您的
onclick
如下所示:

onclick="return write_below(this); return formReset();"
也就是说:

return write_below(this);
return formReset();
第一次返回后,脚本结束。因此,删除第一个返回。您的代码应该如下所示:

onclick="write_below(this); formReset(); return false;"
话虽如此,这里的
返回false
是没有意义的,所以请摆脱它

function write_below(form) {
  var input = document.forms.write.post.value;
  document.getElementById('display').innerHTML += "<p>" + Math.floor(Math.random()*20) + ": " + input + "</p>" + "<br/>";
}
函数写入(表格){
var输入=document.forms.write.post.value;
document.getElementById('display').innerHTML+=“”+Math.floor(Math.random()*20)+“:“+input+”

”+“
”; }

注意:您的所有ID看起来都很相似,这可能会让开发人员或看到您的代码的人发疯。这是你的意图吗 您的
onclick
如下所示:

onclick="return write_below(this); return formReset();"
也就是说:

return write_below(this);
return formReset();
第一次返回后,脚本结束。因此,删除第一个返回。您的代码应该如下所示:

onclick="write_below(this); formReset(); return false;"
话虽如此,这里的
返回false
是没有意义的,所以请摆脱它

function write_below(form) {
  var input = document.forms.write.post.value;
  document.getElementById('display').innerHTML += "<p>" + Math.floor(Math.random()*20) + ": " + input + "</p>" + "<br/>";
}
函数写入(表格){
var输入=document.forms.write.post.value;
document.getElementById('display').innerHTML+=“”+Math.floor(Math.random()*20)+“:“+input+”

”+“
”; }


注意:您的所有ID看起来都很相似,这可能会让开发人员或看到您的代码的人发疯。这是你的意图吗?有两个元素的
id
post
(表单和按钮)。在HTML的情况下并不重要。所有ID都应该是唯一的。@ScottMarcus那里没有相同的ID。JavaScript区分大小写。@PraveenKumar但HTML不区分大小写,如果ID大小写不同,则CSS中的
链接会出现问题,JS中的链接也会容易混淆。@ScottMarcus你说得对。@ScottMarcus我不知道这一点。我以为所有的代码都是区分大小写的。我试试看会发生什么。谢谢有两个元素的
id
post
(表单和按钮)。在HTML的情况下并不重要。所有ID都应该是唯一的。@ScottMarcus那里没有相同的ID。JavaScript区分大小写。@PraveenKumar但HTML不区分大小写,如果ID大小写不同,则CSS中的
链接会出现问题,JS中的链接也会容易混淆。@ScottMarcus你说得对。@ScottMarcus我不知道这一点。我以为所有的代码都是区分大小写的。我试试看会发生什么。谢谢返回值为false,因此当我单击时,它不会尝试加载新页面。类似的ID是bc,我真的不知道还有什么可以识别它们lol@user147219伙计,这是最基本的。好的,如果
return false
对您不起作用,请将它们全部删除。@user147219在给出HTML元素ID时,最好在ID前面加上一个标识该元素类型的前缀。例如,表单的id为
frmPost
,按钮为:
btnPost
。这些都是完全合法的,因为前缀可以防止它们相互踩到对方的脚趾。这也很好,因为在JavaScript中,当遇到,说
txtPost
元素是一个文本框,然后你就知道它有什么样的属性和方法,而不必在HTML中查找它。@PraveenKumar谢谢你它成功地重置了文本框现在我只需要想办法让它只重置文本框lol。谢谢!返回值为false,因此当我单击时,它不会尝试加载新页面。类似的ID是bc,我真的不知道还有什么可以识别它们lol@user147219伙计,这是最基本的。好的,如果
return false
对您不起作用,请将它们全部删除。@user147219在给出HTML元素ID时,最好在ID前面加上一个标识该元素类型的前缀。例如,表单的id为
frmPost
,按钮为:
btnPost
。这些都是完全合法的,因为前缀可以防止它们相互踩到对方的脚趾。这也很好,因为在JavaScript中,当遇到,说
txtPost
元素是一个文本框,然后你就知道它有什么样的属性和方法,而不必在HTML中查找它。@PraveenKumar谢谢你它成功地重置了文本框现在我只需要想办法让它只重置文本框lol。谢谢!