【问题标题】:Submit Only if a specific button is clicked仅在单击特定按钮时提交
【发布时间】:2013-02-11 04:36:59
【问题描述】:

我有这样的表格:

<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”是表单提交所需的仅有的三个。

表单有三个按钮。一种用于删除、创建和修改。

单击创建时,它必须验证三个字段,然后提交表单。 单击删除时,只需验证一个特定字段,然后提交。

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>

我的创建按钮:

<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

【问题讨论】:

  • 你试过调试你的代码吗?
  • 是的。它清除了表格和所有内容。它只是不发布。如果我将按钮类型更改为提交类型,那么它将发布并且我将无法将数据保留在表单中。我需要它,以便如果它验证然后它可以发布。如果验证失败,它应该什么都不做。
  • 您是否尝试过将类型从“按钮”更改为“提交”?您希望它提交表单,但您没有将其指定为提交按钮..
  • 为了便于阅读,您最好创建一个执行验证的创建函数,然后在表单验证时调用提交表单。我猜你试图在 onClick 属性中做太多事情。

标签: javascript html validation


【解决方案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;" />

更改要提交的类型并在最后放置一个 return false。

或将其添加到您的表单元素中:

onsubmit="return validateForm(this);"

并对 Delete 等进行测试。如果 this.value === "Delete" 等...

【讨论】:

  • 啊这成功了! return 声明有效。我做了 If (WhatYouSaidAbove) return true;否则返回假;并且成功了。
  • 太好了,很高兴它成功了。当计时器到时你能接受吗:-),试着提高我的代表! :-)
【解决方案2】:

当您的表单 ID 为“联系人”时,您拥有document.getElementById(Form)。所以把它改成document.getElementById("Contact")

【讨论】:

    猜你喜欢
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多