2013-02-25 55 views
1

我有一個表格,如:提交只有一個特定的按鈕被點擊

<form id='Contact' action="<?php echo $_SERVER['PHP_SELF']; ?>" method='post' enctype="multipart/form-data" accept-charset='UTF-8' style='background-color:#7FFF00; width: 781px'> 

在這種形式,我有15個字段。前三個「FirstName」,「Title」,「LastName」是表單提交所需的唯一三個。

該窗體有三個按鈕。一個用於刪除,創建和修改。

單擊Create時,必須驗證三個字段,然後提交表單。 單擊刪除時,只需要驗證一個特定的字段,然後提交。

的Javascript:

<script type="text/javascript"> 
<!-- 
function validateForm(Form, FieldName) 
{ 
    var Form = document.getElementById(Form); 
    var Elements = Form.elements; 
    var Field = Elements[FieldName].value; 

    if (Field == null || Field == "") 
    { 
     alert(FieldName + " must be filled out!"); 
     return false; 
    } 
    return true; 
} 

function SubmitForm(Form, DoSubmit) 
{ 
    if (DoSubmit) 
    { 
     document.getElementById(Form).submit(); 
    } 
} 
--> 
</script> 

我CreateButton:

<input type='button' name='ContactInfo' value='Create' onClick="SubmitForm('Contact', validateForm('Contact', 'Title') && validateForm('Contact', 'FirstName') && validateForm('Contact', 'LastName'));" /> 

我的刪除按鈕:

<input type='submit' name='ContactInfo' value='Delete' /> 

爲什麼創建按鈕不起作用?它驗證所需的字段,但不提交/後:S

+1

您是否嘗試過調試您的代碼? – christopher 2013-02-25 21:47:24

+0

是的。它清除了形式和一切。它只是不發佈。如果我將按鈕類型更改爲提交類型,那麼它將發佈,我將無法將數據保留在表單中。我需要它,如果它驗證,那麼它可以發佈。如果驗證失敗,它應該什麼也不做。 – Brandon 2013-02-25 21:48:28

+1

您是否嘗試將類型從'按鈕'轉換爲'提交'?您希望它提交表單,但是您沒有將其指定爲提交按鈕.. – christopher 2013-02-25 21:49:37

回答

1
try the following. 


<input type='submit' name='ContactInfo' value='Create' onClick="SubmitForm('Contact', validateForm('Contact', 'Title') && validateForm('Contact', 'FirstName') && validateForm('Contact', 'LastName'));return false;" /> 

改變提交,並把一回在年底假的類型。

或添加到您的表單元素:

onsubmit="return validateForm(this);" 

,並做刪除等測試。如果THIS.VALUE ===「刪除」等...

+1

啊這個工作!返回聲明起作用。我做了如果(WhatYouSaidAbove)返回true;否則返回false;並且工作。 – Brandon 2013-02-25 21:55:38

+0

太棒了,很高興它的工作。你可以接受定時器到嗎:-),試圖提高我的代表! :-) – 2013-02-25 21:56:51

0

你有document.getElementById(Form)當您的表單ID是「聯繫人」。所以改爲document.getElementById("Contact")