下面给出的JS Fiddle是我创建的一个表单。我需要提交它并希望它的输出在MySQL中,但是当我按下提交按钮时它只提交最后一个表单,即form2。我需要一个关于如何通过一个提交按钮提交3个表单的解决方案,我在表单中运行了一些JavaScript。我甚至tried this method但它不适合我。
我尝试在输入元素上使用HTML5 表单属性&我甚至尝试将我的表单更改为只有一种形式,甚至试图通过在同一表单中正确关闭td和表标签来结束事情,但这导致了两个问题。首先是当我选中所有复选框时,它既没有选择也没有取消选择,第二个是当我点击尺寸部分下的任何复选框时,它没有提供数量文本框。
我的表单代码如下:
//select all checkbox script
checked = false;
function checkedAll(frm1) {
var aa = document.getElementById('frm1');
if (checked == false) {
checked = true
} else {
checked = false
}
for (var i = 0; i < aa.elements.length; i++) {
aa.elements[i].checked = checked;
}
}
//only numeric term script
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
function isNumberKeyspecial(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
//form reset
CZBanglesreset = function() {
document.getElementById("form1").reset();
document.form1.twopointtwosizeqty.disabled = true;
document.form1.twopointfoursizeqty.disabled = true;
document.form1.twopointsixsizeqty.disabled = true;
document.form1.twopointeightsizeqty.disabled = true;
document.form1.twopointtensizeqty.disabled = true;
document.getElementById("frm1").reset();
document.getElementById("form2").reset();
}
//oncheck quantity
function codename() {
if (document.form1.twopointtwosize.checked) {
document.form1.twopointtwosizeqty.disabled = false;
} else {
document.form1.twopointtwosizeqty.disabled = true;
}
if (document.form1.twopointfoursize.checked) {
document.form1.twopointfoursizeqty.disabled = false;
} else {
document.form1.twopointfoursizeqty.disabled = true;
}
if (document.form1.twopointsixsize.checked) {
document.form1.twopointsixsizeqty.disabled = false;
} else {
document.form1.twopointsixsizeqty.disabled = true;
}
if (document.form1.twopointeightsize.checked) {
document.form1.twopointeightsizeqty.disabled = false;
} else {
document.form1.twopointeightsizeqty.disabled = true;
}
if (document.form1.twopointtensize.checked) {
document.form1.twopointtensizeqty.disabled = false;
} else {
document.form1.twopointtensizeqty.disabled = true;
}
}
body {
background-image: url(../header_bg.jpg);
background-size: cover;
}
textarea {
resize: none;
}
input[type=checkbox] {
cursor: pointer;
}
input[type=radio] {
cursor: pointer;
}
b {
cursor: default;
}
th {
cursor: default;
}
td {
cursor: default;
}
input[type=text] {
cursor: cell;
}
textarea {
cursor: cell;
}
input[type="reset"] {
width: 10em;
height: 2em;
border: none;
background: transparent;
font-weight: bold;
cursor: pointer;
}
input[disabled] {
background: transparent;
border: none;
cursor: default;
}
input:disabled::-webkit-input-placeholder {
/* WebKit browsers */
color: #fff;
}
input:disabled:-moz-placeholder {
/* Mozilla Firefox 4 to 18 */
color: #fff;
}
input:disabled::-moz-placeholder {
/* Mozilla Firefox 19+ */
color: #fff;
}
input:disabled:-ms-input-placeholder {
/* Internet Explorer 10+ */
color: #fff;
}
<body>
<form action="" method="POST" enctype="multipart/form-data" id="form1" name="form1">
<table border="2" style="box-shadow: 20px 20px 10px #000000; background-color: white;" align="center">
<tr>
<th>
<p align="Left">Name : <sup><font color="red">*</font></sup>
</p>
</th>
<td>
<input type="text" name="product_name" placeholder="Product Name" size="59" title="Enter the name of the product">
</td>
</tr>
<tr>
<th>
<p align="Left">Description : <sup><font color="red">*</font></sup>
</p>
</th>
<td>
<table border="0">
<textarea name="product_desc" placeholder="Product Description" maxlength="300" rows="6" cols="61" title="Enter the Description of the product"></textarea>
</td>
</table>
</tr>
<tr>
<th>
<p align="Left">Size & Weight<sup><font color="red">*</font></sup>
</p>
</th>
<th>
<table border="1">
<td title="Size 2.2">
<label>
<input type="checkbox" name="twopointtwosize" value="2.2size" title="Size 2.2" onClick="codename()">2.2
<br>
<input name="twopointtwosizeqty" type="text" disabled onKeyPress="return isNumberKey(event)" size="2" placeholder="QTY" maxlength="5">
</label>
</td>
<td title="Size 2.4">
<label>
<input type="checkbox" name="twopointfoursize" value="2.4size" title="Size 2.4" onClick="codename()">2.4
<br>
<input type="text" size="2" name="twopointfoursizeqty" placeholder="QTY" onKeyPress="return isNumberKey(event)" maxlength="5" disabled>
</label>
</td>
<td title="Size 2.6">
<label>
<input type="checkbox" name="twopointsixsize" value="2.6size" title="Size 2.6" onClick="codename()">2.6
<br>
<input type="text" size="2" name="twopointsixsizeqty" placeholder="QTY" onKeyPress="return isNumberKey(event)" disabled maxlength="5">
</label>
</td>
<td title="Size 2.8">
<label>
<input type="checkbox" name="twopointeightsize" value="2.8size" title="Size 2.8" onClick="codename()">2.8
<br>
<input type="text" size="2" name="twopointeightsizeqty" placeholder="QTY" onKeyPress="return isNumberKey(event)" disabled maxlength="5">
</label>
</td>
<td title="Size 2.10">
<label>
<input type="checkbox" name="twopointtensize" value="2.10size" title="Size 2.10" onClick="codename()">2.10
<br>
<input type="text" size="3" name="twopointtensizeqty" placeholder="QTY" onKeyPress="return isNumberKey(event)" disabled maxlength="5">
</label>
</td>
<td style="border-style: none;">
<input type="text" placeholder="Weight" name="weight" size="8" maxlength="8" title="Enter the weight in Grams" onKeyPress="return isNumberKey(event)" style="height: 45px;">
</td>
</th>
</table>
</tr>
<tr>
<th>
<p align="Left">Color : <sup><font color="red">*</font></sup>
</p>
</th>
<td>
</form>
<form id="frm1">
<table>
<td title="White Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="White" title="White Colour" value="white"><b title="White Colour">White</b>
</label>
</td>
<td title="White/Red Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="White/Red" title="White/Red Colour" value="w/r"><b title="White/Red Colour">W/R</b>
</label>
</td>
<td title="White/Green Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="White/Green" title="White/Green Colour" value="w/g"><b title="White/Green Colour">W/G</b>
</label>
</td>
<td title="White/Blue Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="White/Blue" title="White/Blue Colour" value="w/b"><b title="White/Blue Colour">W/B</b>
</label>
</td>
</tr>
<tr>
<td title="Red Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="Red" title="Red Colour" value="red"><b title="Red Colour">Red</b>
</label>
</td>
<td title="Red/Green Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="Red/Green" title="Red/Green Colour" value="r/g"><b title="Red/Green Colour">R/G</b>
</label>
</td>
<td title="Red/Blue Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="Red/Blue" title="Red/Blue Colour" value="r/b"><b title="Red/Blue Colour">R/B</b>
</label>
</td>
</tr>
<tr>
<td title="Green Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="Green" title="Green Colour" value="green"><b title="Green Colour">Green</b>
</label>
</td>
<td title="Green/Blue Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="Green/Blue" title="Green/Blue Colour" value="g/b"><b title="Green/Blue Colour">G/B</b>
</label>
</td>
<tr>
<td title="Blue Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="Blue" title="Blue Colour" value="blue"><b title="Blue Colour">Blue</b>
</label>
</td>
<tr>
<td title="Multi Colour" style="border-style: groove; box-shadow: 5px 5px 2px #3B3131;">
<label>
<input type="checkbox" name="multicolor" title="Multi Colour" value="multicolor"><b title="Multi Colour">MultiColour</b>
</label>
</td>
</form>
<td title="Select All" align="right" style="border-style: none;">
<input type="checkbox" name="checkall" title="Select All" onclick='checkedAll(frm1);'>
</td>
<td style="border-style: none;"><b title="Select All">All</b>
<form action="" method="POST" enctype="multipart/form-data" id="form2">
</td>
</table>
</td>
</tr>
</td>
</tr>
<tr>
<th>
<p align="Left">Price : <sup><font color="red">*</font></sup>
</p>
</th>
<td>
<table border="1">
<td>
<input type="text" name="product_price" placeholder="Original" size="21" title="Enter The Original Price Of The Product" onkeypress="return isNumberKey(event)">
<td>
<input type="text" name="product_special_price" placeholder="Special" size="21" title="Enter The Special Price Of The Product (not necessary)" onkeypress="return isNumberKeyspecial(event)">
</td>
</td>
</tr>
</table>
<tr>
<th title="Special Price Validity Dates;(note it is valid only if entered special price)">
<p align="Left">Special Date : <sup><font color="red">*</font></sup>
</p>
</th>
<td title="Special Price Validity Dates;(note it is valid only if entered special price)">
<table border="0">
<tr>
<th title="Special Price Validity Starting Date">Start Date:</th>
<td>
<input type="date" name="startingdate" min="2015-02-01">
<br>
</td>
</tr>
<tr>
<th title="Special Price Validity Ending Date">End Date:</th>
<td>
<input type="date" name="endingdate" min="2015-02-01">
<br>
</td>
</tr>
<tr>
<th>
<font color="white" size="0">Hello</font>
</th>
</tr>
<tr>
<th>
<font color="white" size="0">Hello</font>
</th>
</tr>
</table>
</td>
</tr>
<tr>
<th title="Status(Should the Product be visible to the customers)">
<p align="Left">Status : <sup><font color="red">*</font></sup>
</p>
</th>
<th>
<label>Enable :
<input type="radio" name="status" value="enable" title="Enable The Status">
</label>
<label>Disable :
<input type="radio" name="status" value="disable" title="Disable The Status">
</label>
</th>
</tr>
<tr>
<th title="Tax Class(which type of tax should be applied on the product)">
<p align="Left">Tax Class : <sup><font color="red">*</font></sup>
</p>
</th>
<th>
<label>Taxable :
<input type="radio" name="tax" value="taxable" title="Taxable Goods">
</label>
<label>Shipping :
<input type="radio" name="tax" value="shipping" title="Shipping">
</label>
 
<label>None :
<input type="radio" name="tax" value="None" title="None from both on the left">
</label>
</th>
</tr>
<tr>
<th>
<input type="reset" name="reset" value="Reset" onclick="CZBanglesreset();" title="Reset All The Details">
</th>
<th>
<input type="submit" name="submit" value="Add Product" title="Add Product To The Inventory" style=" width: 33em;height: 2em;
border:none;
background: transparent;
font-weight:bold;
cursor:pointer;">
</th>
</tr>
</table>
</form>
</body>
答案 0 :(得分:2)
首先,你有重叠的标签:你的form1在td内结束,这是不可能的。如果你看一下DOM结构,frm1完全嵌套在form1中。但这不是真正的问题。
当您尝试同时提交3个表单时,前两个提交将中止,只有第三个提交通过。唯一的方法是使用AJAX调用异步进行。
答案 1 :(得分:1)
忽略您的加价问题,如果您不需要执行三次表单提交(我不知道您为什么会这样做),您可以使用HTML5 {{1}输入元素的属性。所以,你可以拥有一个&#34; master&#34;在输入元素中形成和绑定。完成后,只需执行一次表单提交。
form
&#13;
//only numeric term script
function isNumberKey(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
return true;
}
function isNumberKeyspecial(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
return true;
}
/**
* Check all color checkboxes.
* @param {Object} ele the "Check All" checkbox
*/
function checkedAll(ele) {
"use strict";
var arrayOfElements = ele.closest("#colors").getElementsByTagName("input"),
item,
i = 0;
for (i; i < arrayOfElements.length; i = i + 1) {
item = arrayOfElements[i];
if (ele !== item && document.contains(item) === true) {
arrayOfElements[i].checked = ele.checked;
}
}
}
/**
* Reset the form back to its origional state.
*/
function resetForm() {
"use strict";
var arrayOfElements = document.getElementsByTagName("input"),
item,
i = 0;
for (i; i < arrayOfElements.length; i = i + 1) {
item = arrayOfElements[i].name;
if (item.match(/qty/gi) !== null) {
arrayOfElements[i].disabled = true;
} else {
arrayOfElements[i].checked = false;
}
}
document.getElementById("MasterForm").reset();
}
/**
* Toggle the display and state of the input box with the checkbox.name + "qty".
* @param {Object} ele The clicked checkbox.
*/
function codename(ele) {
"use strict";
document.getElementsByName(ele.name + "qty")[0].disabled = !ele.checked;
}
&#13;
body {
background-image: url(../header_bg.jpg);
background-size: cover;
}
textarea {
resize: none;
}
input[type=checkbox] {
cursor: pointer;
}
input[type=radio] {
cursor: pointer;
}
b {
cursor: default;
}
th {
cursor: default;
}
td {
cursor: default;
}
input[type=text] {
cursor: cell;
}
textarea {
cursor: cell;
}
input[type="reset"] {
width: 10em;
height: 2em;
border: none;
background: transparent;
font-weight: bold;
cursor: pointer;
}
input[disabled] {
background: transparent;
border: none;
cursor: default;
}
input:disabled::-webkit-input-placeholder {
/* WebKit browsers */
color: #fff;
}
input:disabled:-moz-placeholder {
/* Mozilla Firefox 4 to 18 */
color: #fff;
}
input:disabled::-moz-placeholder {
/* Mozilla Firefox 19+ */
color: #fff;
}
input:disabled:-ms-input-placeholder {
/* Internet Explorer 10+ */
color: #fff;
}
&#13;