JavaScript "submit ();" Функция не найдена ошибка - PullRequest
0 голосов
/ 07 января 2011

У меня есть форма как

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

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

Ответы [ 3 ]

2 голосов
/ 07 января 2011

Привет, если у вас есть кнопка с именем 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 голос
/ 07 января 2011

Вы не указали форму правильно.

Быстрое исправление:

Чуть ниже этой строки:

function valdocAddEdit(frm) {

Введите:

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

Значение:

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

А теперь frm.submit(); не должен жаловаться.

0 голосов
/ 07 января 2011

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

...