[英]Form gets submitted Multiple times
在表單內單擊時,表單自動嘗試重新提交,我無法弄清楚代碼的哪部分導致其行為像這樣。 在createTable函數中,在給出域之后創建一個表。 但是我無法選擇輸出中的任何控件。 我在這里附加了jsfiddle代碼鏈接: http : //jsfiddle.net/rasikaceg/S7kWM/
function createTable() {
document.getElementById("table_container").innerHTML = "";
var input_domain = document.forms["form1"]["DomainName"].value;
if (input_domain == null || input_domain == "") return;
var table = document.createElement("table"),
tablehead = document.createElement("thead"),
theadrow = document.createElement("tr"),
th1 = document.createElement("th"),
th2 = document.createElement("th"),
th3 = document.createElement("th"),
th4 = document.createElement("th");
th1.appendChild(document.createTextNode("Website"));
th2.appendChild(document.createTextNode("Enable/Disable Live Update for LM and CBD"));
th3.appendChild(document.createTextNode("From Date"));
th4.appendChild(document.createTextNode("To Date"));
theadrow.appendChild(th1);
theadrow.appendChild(th2);
theadrow.appendChild(th3);
theadrow.appendChild(th4);
tablehead.appendChild(theadrow);
table.appendChild(tablehead);
var names = ["website1", "website2"];
var container = document.getElementById("table_container");
var tablebody = document.createElement("tbody");
for (var i = 0, len = names.length; i < len; ++i) {
var row = document.createElement("tr"),
column1 = document.createElement("td"),
column2 = document.createElement("td"),
column3 = document.createElement("td"),
column4 = document.createElement("td"),
checkbox = document.createElement('input');
checkbox.type = "checkbox";
checkbox.name = names[i];
checkbox.value = names[i];
checkbox.id = names[i];
var label = document.createElement('label')
label.htmlFor = names[i];
label.appendChild(document.createTextNode(names[i]));
column1.appendChild(checkbox);
column1.appendChild(label);
var dropdown = document.createElement("select");
dropdown.name = names[i] + "_select";
var op1 = new Option();
op1.value = "enable";
op1.text = "enable";
var op2 = new Option();
op2.value = "disable";
op2.text = "disable";
dropdown.options.add(op1);
dropdown.options.add(op2);
column2.appendChild(dropdown);
var datetime_from = document.createElement('input');
datetime_from.type = "datetime-local";
datetime_from.name = names[i] + "_from";
column3.appendChild(datetime_from);
var datetime_to = document.createElement('input');
datetime_to.type = "datetime-local";
datetime_to.name = names[i] + "_to";
column4.appendChild(datetime_to);
row.appendChild(column1);
row.appendChild(column2);
row.appendChild(column3);
row.appendChild(column4);
tablebody.appendChild(row);
}
table.appendChild(tablebody);
document.getElementById("table_container").appendChild(table);
}
可能是<form onClick="...">
嗎?
這是為了什么
考慮改為onsubmit
。
你寫。 點擊事件的代表表格。
<form name="form1" method="post" onClick="createTable();return myFunction();">
你應該做的是
<form name="form1" method="post" action="createTable();return myFunction();">
每次單擊表單時,都會調用兩個函數。 您的表位於表單內,因此單擊表中的任何元素也會調用該函數。 您應僅在提交表格時致電這些人。
<form name="form1" method="post" onClick="createTable();return myFunction();">
應該
<form name="form1" method="post" onsubmit="createTable();return myFunction();">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.