2011-01-07 2 views
0

У меня есть форма, какJavascript «отправить();» Функция не найдена ошибка

<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> 

и функции яваскрипта как

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.

Может ли кто-нибудь предложить мне, где код идет не так?

ответ

1

Вы не определяете форму правильно.

Quick Fix:

Чуть ниже этой линии:

function valdocAddEdit(frm) { 

Put:

var frm = document.getElementById('selectdoctype'); 

Значение:

function valdocAddEdit(frm) { 
    var frm = document.getElementById('selectdoctype'); 
    ......... 
} 

И н ow frm.submit(); не должен жаловаться.

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);"/>` 
0

Вы задаете форму правильно, во-первых, но не лучшая практика. в основном, форма имеет удовольствие под названием submit, чтобы запустить базу запроса по ее действию, но в вашем коде форма также имеет свойство submit, чтобы сопоставить входное значение. Также измените submit btn'name на что-то еще, это будет работа !

+0

-1 Пожалуйста, используйте правильное предложение. – Tomas

+0

Мне очень жаль, но я китайский, мой английский настолько беден! – island205

Смежные вопросы