2017-04-20 85 views
0

我想在提交之前檢查一些表單的值。所以我要把它放到我的:表單提交JS不工作

<form name="frmcontact" id="frmcontact" method="post" action="<?php echo($action);?>" class="forms" onsubmit="return checkContactsFields()"> 

這裏是我的JS功能:

function checkContactsFields(){ 
    var newIdValue = document.forms["frmcontact"]["new_id"].value; 
    if(newIdValue !== 'ADRESSE NON IDENTIFIE'){ 
     var form = document.forms["frmcontact"].elements; 
     for(var i = 0; i < form.length; i++) { 
      if(form[i].name === 'street' || form[i].name === 'cp' || form[i].name === 'town'){ 
       if(form[i].value === ''){ 
        console.log('ok'); 
        document.getElementById('main_error_popup').style.display = 'table-cell'; 
        if(form[i].name === 'street') 
         errorMsg = 'Voie'; 
        else if(form[i].name === 'cp'){ 
         errorMsg = 'Code Postal'; 
        }else{ 
         errorMsg = 'Ville' 
        } 
        document.getElementById('main_error_popup').innerHTML = 'Le champ ' + errorMsg + ' est vide'; 
        return false; 
       } 
      } 
     } 
     return true; 
    } 
    return true; 
} 

我的問題是,即使返回虛假陳述,形式提交..

任何想法的原因?

在此先感謝

+0

函數返回什麼值?你有任何錯誤?相關(最小)HTML在哪裏?請參閱[*如何創建最小,完整和可驗證的示例*](http://stackoverflow.com/help/mcve)。 – RobG

回答

1

添加preventDefault的功能&使用AJAX

submit形式

在HTML

onsubmit="return checkContactsFields(event)" 

在JS

function checkContactsFields(e){ 
    e.preventDefault() 
} 
+0

我試試這個,我用「e.preventDefault();」替換「return false」但表格仍然提交.. – Nathan30

1

在Chrome瀏覽器快速測試似乎給我RK如果我 只是做:

function checkContactsFields(){ 
    alert("I won't submit"); 
    return false; 
} 

https://plnkr.co/edit/yA3hVlDtfUGxSCceqPMY?p=preview

如果你的JavaScript執行的提交將仍然發生時拋出一個錯誤。

你的html是什麼樣的?

+0

這不是一個答案,它應該是一個評論。 – RobG