当我将表单提交到服务器时,如何检查表单中是不是存在输入字段?
Posted
技术标签:
【中文标题】当我将表单提交到服务器时,如何检查表单中是不是存在输入字段?【英文标题】:How can I check a input field exists in the form when I submit it to the server?当我将表单提交到服务器时,如何检查表单中是否存在输入字段? 【发布时间】:2011-11-03 00:37:03 【问题描述】:当我将表单提交到服务器时,如何检查表单中是否存在输入字段?
例如,我想检查表单中是否存在名为“mem_follow”的复选框。
或者我必须使用 javascript (jquery) 吗?
【问题讨论】:
【参考方案1】:我猜您需要在提交表单后在服务器端进行检查。如果是这样的话,你可以这样检查......
<?php
if (isset($_POST['mem_follow']))
// Work your server side magic here
else
// The field was not present, so react accordingly
?>
希望这会有所帮助!
【讨论】:
【参考方案2】:它必须是 Javascript。 PHP 无法从服务器进入浏览器的内部并为您检查。它只能检查字段名是否存在于提交的数据中。
在 jquery 中这很简单:
if ($('input[name="nameoffield"]')) ... field exists ...
当然,这提出了一个问题……为什么你需要知道一个字段是否存在?大概您是构建表单的人。您应该已经知道该字段是否存在。
【讨论】:
谢谢。实际上我从服务器端需要它。有时我在表单中有一个复选框,有时没有。所以我想让它在服务器端动态化。if (isset($_REQUEST['nameoffield'])) ... it was submitted ...
使用if (isset($_POST['mem_follow'])) // do something
【参考方案3】:
在以下脚本中,除非选中复选框,否则表单不会提交。如果您尝试,则会显示带有错误消息的隐藏 div,让您知道原因。
<form action="test.php" method="post" id="myform">
<input type="checkbox" name="checkbox" id="checkbox" value="YES" />
<input type="submit" name="submit" value="submit" />
</form>
<div id="error_message_div" style="display:none">You must tick the checkbox</div>
<script>
$('#myform').submit(function()
if($('#checkbox').attr('checked'))
return true;
else
$("#error_message_div").show();
return false;
);
</script>
干杯 马特
【讨论】:
【参考方案4】:您可以通过两种方式做到这一点:
通过服务器端:在 php 中
<?php
if (isset($_POST['mem_follow'])
// Work your server side magic here
else
// The field was not present, so react accordingly
?>
通过客户端:在 Jquery 中
$('#submit_button').click(function()
if ($('input[name="box_name"]'))
if($('input[name="box_name"]').attr('checked'))
return true;
else
return false;
);
【讨论】:
【参考方案5】:您可以使用 jQuery 并执行以下操作:
$('#myForm').submit(function (e)
if($(this).children(':checkbox[name=mem_follow]').length > 0)
//exists
else
//doesn't exist
);
或者使用 php 并检查是否有任何名为 'mem_follow' 的变量:(这是用于 POST,虽然它是 GET 还是 POST 无关紧要)
if(isset($_POST['mem_follow']))
//exists
else
//doesn't exist
【讨论】:
【参考方案6】:您可以以submit
事件处理程序的形式尝试此代码
if($("input[name=mem_follow]").length > 0)
//It exists
【讨论】:
【参考方案7】:这里的其他答案是正确的:您必须在客户端这样做。在复选框输入字段的情况下,如果未选中该框,则不能保证浏览器将包含该字段的 POST 参数。
例如,如果您在未选中复选框的情况下提交此表单:
<form action="test.php" method="post">
<input type="checkbox" name="checkbox" value="YES" />
<input type="submit" name="submit" value="submit" />
</form>
只会提交submit=submit
参数。
所以,不,您不能保证给定的复选框存在于服务器端的表单中。
【讨论】:
【参考方案8】:所有元素都可以试试这个
number = document.form_name.elements.length;
其他输入的特定名称使用此
number = document.form_name.getElementsBYName('Name of Input').length;
就是这样
享受
【讨论】:
【参考方案9】:我建议你使用 Jquery
$.fn.Exists = function()
return $(this).length>0;
if ($("here are your selector to check").Exists())
...
简单实用!
你可以在任何地方使用这个Exists
方法))))
【讨论】:
【参考方案10】:您可以使用 javascript(或 jQuery)来做到这一点:
<script>
$('#myform').submit(function()
if($('#yourFieldId').val()=='')
alert('the field ' + $('#yourformField').name() + ' is empty !');
return false;
else
return true;
);
</script>
您可以对所有字段逐一执行此操作,或者将所有条件放在 if 语句中。
【讨论】:
以上是关于当我将表单提交到服务器时,如何检查表单中是不是存在输入字段?的主要内容,如果未能解决你的问题,请参考以下文章