有没有一种方法可以使表单提交所需的字段?
我可以使用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变量,并在找到时显示内容。