我的表格为
<form name="selectdoctype" method="post" action="" id="selectdoctype">
<table style="border:none;">
<tr><td colspan="2"> (<span class="asterisk" style="color:#FF0000;">*</span>) Mandatory</td></tr>
<tr>
<td style="border-right:none">Document Name:</td>
<td style="border-right:none">
<input type="text" name="doc_name" value="" /><span class="asterisk" style="color:#FF0000;">*</span>
</td>
</tr>
<tr>
<td style="border-right:none">Document type:</td>
<td style="border-right:none">
<select name="doctype_id" onchange="doPaymentfor(this.value);"><option value="-1" >--Select Document Type--</option>
<?php
foreach($arr_createdoc as $doctype){
?>
<option value="<?php echo $doctype['doctype_id'];?>"><?php echo $doctype['doctype_name'];?></option>
<?php }?>
</select>
</td>
</tr>
<tr>
<td style="border-right:none" id="purchaselabel"></td>
<td style="border-right:none">
<select name="purchasedoc_id" id="purshasedocs" style="display:none;"><option value="-1" >--Select Document Type--</option>
<?php
foreach($arr_purchasedoc as $docpurchase){
?>
<option value="<?php echo $docpurchase['doc_id'];?>"><?php echo $docpurchase['doc_name'];?></option>
<?php }?>
</select>
</td>
</tr>
<tr>
<td style="border-right:none">Document Distribution:</td>
<td style="border-right:none">
<select name="distribution_id">
<option value="-1">---Select Distriution---</option>
<?php foreach($arr_distribution as $distribution){?>
<option value="<?php echo $distribution['distribution_id'];?>"><?php echo $distribution['distribution_name'];?></option>
<?php }?>
</select>
</td>
</tr>
<tr>
<td colspan="2" align="center" style="border-right:none">
<input type="button" name="submit" value="Proceed" class="submit" onclick="valdocAddEdit(this.form);"/>
</td>
</tr>
</table>
</form>
和javascript的功能为
function valdocAddEdit(frm) {
if ((frm.doc_name.value == null) || (frm.doc_name.value == "")) {
alert("Please enter Document Name!")
frm.doc_name.focus()
return false;
}
if(frm.doc_name.value.length > 50) {
alert("Document Name can not be more than 20 characters!");
frm.doc_name.focus();
return false;
}
if(frm.doctype_id.value == "-1") {
alert("Please Select Document Type Name!");
frm.doctype_id.focus();
return false;
}
if(frm.doctype_id.value == "1") {
if(document.getElementById('purshasedocs').style.display == "block"){
if(frm.purchasedoc_id.value == "-1"){
alert("Please Select Purchase Order Name!");
frm.purchasedoc_id.focus();
return false;
}
}
}
if(frm.distribution_id.value == "-1") {
alert("Please Select Distribution Name!");
frm.distribution_id.focus();
return false;
}
frm.submit();
}
但是,只要验证了所有的javascript验证,表单就不会被提交,因为产生了javascript错误 “frm.submit在firebug中不是一个函数”。
有人可以告诉我代码出错的地方吗?
答案 0 :(得分:2)
Hei如果你有一个名为submit
的按钮,则submit()函数将无效。重命名
<input type="button" name="submit" value="Proceed" class="submit" onclick="valdocAddEdit(this.form);"/>
到别的地方
例如:
<input type="button" name="submit_btn" value="Proceed" class="submit" onclick="valdocAddEdit(this.form);"/>`
答案 1 :(得分:1)
您没有正确指定表单。
快速修复:
就在这条线下面:
function valdocAddEdit(frm) {
把:
var frm = document.getElementById('selectdoctype');
含义:
function valdocAddEdit(frm) {
var frm = document.getElementById('selectdoctype');
.........
}
现在frm.submit();
不应抱怨。
答案 2 :(得分:0)
您首先正确指定表单,但不是最佳实践。 基本上,表单有一个有趣的命名提交来触发请求基于它的动作,但在你的代码中,表单也有一个属性提交来映射输入值。所以将提交btn'name更改为其他东西,它将是工作!