2013-02-25 64 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")