有没有一种方法可以使表单提交所需的字段?

我可以使用HTML,Javascript或PHP来执行此操作-无论哪种方法都可以。

我要确保表单提交时不使用空白值。如果我可以做到这一点也很不错,这样用户就可以在某些字段中输入值。

编辑:目前我真的不想使用jQuery,因为我不确定我的老板是否希望我使用jQuery。

试图做到这一点:

<script type="text/javascript">
    $('addorg').submit(function(){
    if($('orgname').val()==""){
        alert("Organization Name must be Filled");
        return false;
    }
})
    </script>


这是它正在处理的HTML:

<form name="addorg" action="addorg.php" enctype="multipart/form-data" method="POST">
    <div id="orgdiv"> <fieldset><label for="orgname">Organization Name</label>
            <input type="text" name="orgname" id="orgname"/>
        </fieldset>
    </div>


这用于客户端验证。我可以处理服务器端验证,我的PHP比我的Javascript或jQuery更好。

客户端验证似乎无效。

最佳答案

您可以使用JavaScript或PHP进行此操作。 JS更加用户友好并且易于编码,但是可以被确定的用户绕开。在某些浏览器或某些设置下,它也可能无法正常工作,使用户可以像没有验证一样继续进行操作,但是这种情况通常很少见。除非这是公司网站或没有错误的空间,否则我将建议使用JS解决方案。

您可以通过使用onSubmit函数修改表单标签来做到这一点:

 <form action="whatever" method="post" onSubmit="checkStuff();">
      <input id="field_1" name="field_1"...>


然后,您需要创建该函数并将其放在页面的头部。它应显示为:

 function checkStuff() {
      // By default, we plan to submit the form.
      var formOkay = 1;

      // Check to see if field_1 has a value.  If not, we note that by changing our variable.
      if (document.getElementById('field_1').value == '') formOkay = 0;
      ...

      // Let the user know something is wrong somehow.  An alert is easiest.
      alert('fill out everything, ya goof!');

      // If you return true the form will submit.  If you return false it will not.
      if (formOkay == 1) {
           return true;
      } else {
           return false;
      }
 }


请注意,您的输入必须具有id属性才能使用此方法(尽管也可以修改我的代码以使用名称)。我将使id与字段名称具有相同的值。您可以为我放置省略号的更多字段添加其他检查。可以更高效,更简洁地编写此代码,但我认为这种方法最容易理解和修改。

这是我的首要任务,尚未经过测试,但可以使您按正确的方向工作。如果您还有其他问题,请告诉我。

编辑:
我只是想跟进其他人,以同意如果您有时间和意愿,或者这是与工作相关的问题,则应该同时验证两种方法。 JS提供了更好,更用户友好的方法,而PHP确保没有人能够绕过JS来破坏您的规则。

我不知道PHP,但是您的伪代码将如下所示:

 if field_1 = "" then
      // Option 1
      Print("Please press back and fill out field 1!")
      AbortPage()
      // Option 2
      Redirect("form.php?error=Please fill out field 1&[other form values]")
 end if


对于选项2,您将修改表单页面以检测url变量并将其放入输入中。您还可以对其进行修改,以查找称为“错误”的url变量,并在找到时显示内容。

10-08 07:57
查看更多