Javascript 重置2个不同的表单
我试图用一个名为resetFunctions()的函数从1按钮重置2个函数,但什么也没发生。另外两个重置正在工作,因为我需要它们只在功能上重置。我一直看到每个功能都会重置,所以我不确定是否会发生这种情况Javascript 重置2个不同的表单,javascript,html,Javascript,Html,我试图用一个名为resetFunctions()的函数从1按钮重置2个函数,但什么也没发生。另外两个重置正在工作,因为我需要它们只在功能上重置。我一直看到每个功能都会重置,所以我不确定是否会发生这种情况 <!DOCTYPE html> <html> <head> <script type="text/javascript"> function result() { document.getElementById
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function result() {
document.getElementById('ansCAL').value = calculate() + calculate1();
}
function populate(select1, select2)
{
var Brand1 = document.getElementById(select1);
var Brand2 = document.getElementById(select2);
Brand2.innerHTML = "";
if(Brand1.value == "Chevy")
{
var optionArray = ["|","1000|Camaro","2000|Corvette","3000|Impala"];//The | means a blank space, camaro is the label, Camaro is the value, ex. value 1000 and corvette is the label
}
else if(Brand1.value == "Dodge")
{
var optionArray = ["|","4000|Avanger","5000|Challengere","6000|Charger"];
}
else if(Brand1.value == "Ford")
{
var optionArray = ["|","7000|Mustang","8000|Shelby","focus|Focus"];
}
for(var option in optionArray)//the options within the optionArray
{
var pair = optionArray[option].split("|");//in tha variable pair is stored both value and label
var newOption = document.createElement("option");// option in the bracket is used to create new options or you can insert divs paragraph etc
newOption.value = pair[0];//pair 0 gives the value
newOption.innerHTML = pair[1];//pair 1 gives the label
Brand2.options.add(newOption);
}
}
//second function
function calculate() {
var Brand1 = 0;
var Brand2 = 0;
Brand1 = document.getElementById('slct1').value;
Brand2 = document.getElementById('slct2').value;
multi=document.getElementById('amount').value;
total=parseInt((Brand2)*multi/100);
document.getElementById('answer').value=total;
/*document.getElementById("ansCAL").innerHTML = "<br>Total amount " + (total + total1);*/
}
//second Main function
function populate1(Select1a, Select2a)
{
var Brand1a = document.getElementById(Select1a);
var Brand2a = document.getElementById(Select2a);
Brand2a.innerHTML = "";
if(Brand1a.value == "Chevy")
{
var optionArray = ["|","1000|Camaro","2000|Corvette","3000|Impala"];//The | means a blank space, camaro is the label, Camaro is the value, ex. value 1000 and corvette is the label
}
else if(Brand1a.value == "Dodge")
{
var optionArray = ["|","4000|Avanger","5000|Challengere","6000|Charger"];
}
else if(Brand1a.value == "Ford")
{
var optionArray = ["|","7000|Mustang","8000|Shelby","focus|Focus"];
}
for(var option in optionArray)//the options within the optionArray
{
var pair = optionArray[option].split("|");//in tha variable pair is stored both value and label
var newOption = document.createElement("option");// option in the bracket is used to create new options or you can insert divs paragraph etc
newOption.value = pair[0];//pair 0 gives the value
newOption.innerHTML = pair[1];//pair 1 gives the label
Brand2a.options.add(newOption);
}
}
//second function
function calculate1() {
var Brand1a = 0;
var Brand2a = 0;
Brand1a = document.getElementById('slct1a').value;
Brand2a = document.getElementById('slct2a').value;
multi=document.getElementById('amount1').value;/*to change accordingly amount1*/
total1=parseInt(((Brand2a)*multi)/100);
document.getElementById('answer1').value=total1;/*to change accordingly amount1*/
document.getElementById("ansCAL").innerHTML = "<br>Total amount " + (total + total1);
}
function resetFunctions() {
document.getElementById("slct2a").reset();
document.getElementById("slct2a").reset();
}
</script>
</head>
<body>
<form>
Choose Your Car:
<select id="slct1" name="slct1" onchange="populate('slct1','slct2')">
<option value=""></option>
<option value="Chevy">Chevy</option>
<option value="Dodge">Dodge</option>
<option value="Ford">Ford</option>
</select>
Choose Type of Car:
<select id="slct2" name="slct2">
</select>
<label> Amount <input type="number" name="amount" id="amount" size="1" onkeyup="result()"/> (g) </label>
<label> Total <input type="number" name="answer" id="answer" size="1"/></label>
<input type="reset" name="Reset" value="Reset"/>
<br><br><br>
<hr>
<br>
</form>
<!--Starts 2 selection-->
<form>
Choose Your Car:
<select id="slct1a" name="slct1a" onchange="populate1('slct1a','slct2a')"><!--changed accordingly increased a after slct1a-->
<option value=""></option>
<option value="Chevy">Chevy</option>
<option value="Dodge">Dodge</option>
<option value="Ford">Ford</option>
</select>
Choose Type of Car:
<select id="slct2a" name="slct2a">
</select>
<label> Amount <input type="number" name="amount1" id="amount1" size="1" onkeyup="result()"/> (g) </label> <!--changed accordingly increased 1 after calculate-->
<label> Total <input type="number" name="answer1" id="answer1" size="1"/></label>
<input type="reset" name="Reset" value="Reset"/>
<br><br><br>
<p id="ansCAL"></p>
</form>
<input type="button" onclick="resetFunctions()" value="Reset">
</body>
</html>
函数结果(){
document.getElementById('ansCAL')。value=calculate()+calculate1();
}
函数填充(选择1,选择2)
{
var Brand1=document.getElementById(选择1);
var Brand2=document.getElementById(选择2);
Brand2.innerHTML=“”;
如果(品牌1.value==“雪佛兰”)
{
var optionArray=[“|”、“1000 | Camaro”、“2000 | Corvette”、“3000 | Impala”];//表示空白,Camaro是标签,Camaro是值,例如值1000,Corvette是标签
}
else if(Brand1.value==“道奇”)
{
var optionArray=[“|”、“4000 | Avanger”、“5000 | Challengere”、“6000 | Charger”];
}
否则如果(Brand1.value==“Ford”)
{
var optionArray=[“|”、“7000辆野马”、“8000辆谢尔比”、“聚焦”];
}
for(optionArray中的var选项)//optionArray中的选项
{
var pair=optionArray[option].split(“|”);//在变量对中存储值和标签
var newOption=document.createElement(“option”);//括号中的选项用于创建新选项,也可以插入divs段落等
newOption.value=对[0];//对0给出值
newOption.innerHTML=对[1];//对1给出标签
Brand2.options.add(newOption);
}
}
//第二功能
函数计算(){
var Brand1=0;
var Brand2=0;
Brand1=document.getElementById('slct1')。值;
Brand2=document.getElementById('slct2')。值;
multi=document.getElementById('amount')。值;
总计=parseInt((品牌2)*多个/100);
document.getElementById('answer')。value=total;
/*document.getElementById(“ansCAL”).innerHTML=“
总额”+(总额+总额1)*/
}
//第二个主要功能
功能填充1(选择1A,选择2A)
{
var Brand1a=document.getElementById(选择1a);
var Brand2a=document.getElementById(选择2a);
Brand2a.innerHTML=“”;
如果(Brand1a.value==“雪佛兰”)
{
var optionArray=[“|”、“1000 | Camaro”、“2000 | Corvette”、“3000 | Impala”];//表示空白,Camaro是标签,Camaro是值,例如值1000,Corvette是标签
}
否则如果(Brand1a.value==“道奇”)
{
var optionArray=[“|”、“4000 | Avanger”、“5000 | Challengere”、“6000 | Charger”];
}
否则如果(Brand1a.value==“福特”)
{
var optionArray=[“|”、“7000辆野马”、“8000辆谢尔比”、“聚焦”];
}
for(optionArray中的var选项)//optionArray中的选项
{
var pair=optionArray[option].split(“|”);//在变量对中存储值和标签
var newOption=document.createElement(“option”);//括号中的选项用于创建新选项,也可以插入divs段落等
newOption.value=对[0];//对0给出值
newOption.innerHTML=对[1];//对1给出标签
Brand2a.options.add(新选项);
}
}
//第二功能
函数calculate1(){
var Brand1a=0;
var Brand2a=0;
Brand1a=document.getElementById('slct1a')。值;
Brand2a=document.getElementById('slct2a')。值;
multi=document.getElementById('amount1').value;/*以相应地更改amount1*/
total1=parseInt(((Brand2a)*multi)/100);
document.getElementById('answer1')。value=total1;/*以相应地更改amount1*/
document.getElementById(“ansCAL”).innerHTML=“
总额”+(总额+总额1);
}
函数resetFunctions(){
document.getElementById(“slct2a”).reset();
document.getElementById(“slct2a”).reset();
}
选择您的汽车:
雪佛兰
闪避
河流浅水处
选择车辆类型:
金额(克)
全部的
选择您的汽车:
雪佛兰
闪避
河流浅水处
选择车辆类型:
金额(克)
全部的
我给你做了一些小改动,检查一下这把小提琴:
我帮你修好了,现在一切都好了。
下次你应该自己尝试一下,不要让别人帮你做事
这就是您的解决方案所需的全部内容:
function resetFunctions() {
Array.prototype.forEach.call(document.forms,function(el,idx,array){
el.reset();
});
result();
}
您的两次重置都是重置相同的内容。每次重置都是重置其函数,但我希望()重置两个函数。为了澄清,您的
resetFunctions
具有document.getElementById(“slct2a”).reset()当它应该是document.getElementById(“slct1a”).reset()时,在第一行的code>代码>很棒,很好。单击仅重置一个功能的每个功能的单个重置按钮不会更新()。我的意思是,如果这两个函数的总数为100(50个),并且单击了一个重置按钮,则不会更新数量。它仍然是100。它不起作用,但如果你只使用我的函数并将其放入代码中,一切都会起作用。你的函数工作正常,但你给我的函数和其他单个重置按钮不会重置()。金额保持不变且未更新,因为P标记不是表单的一部分,请将P标记更改为只读的输入文本,它也将重置。我将P更改为输入文本,但它不起作用。我明白了。如何从您的功能手动重置它?