Php 当我将表单提交到服务器时,如何检查表单中是否存在输入字段?

Php 当我将表单提交到服务器时,如何检查表单中是否存在输入字段?,php,jquery,validation,Php,Jquery,Validation,当我将表单提交到服务器时,如何检查表单中是否存在输入字段 例如,我想检查表单中是否存在名为“mem_follow”的复选框 或者我必须使用javascript(jquery)?它必须是javascript。PHP无法从服务器进入浏览器的内脏并为您检查。它只能检查提交的数据中是否存在字段名 在jquery中,它很简单: if ($('input[name="nameoffield"]')) { ... field exists ... } 当然,这提出了一个问题。。。为什么需要知道字段是否存在?

当我将表单提交到服务器时,如何检查表单中是否存在输入字段

例如,我想检查表单中是否存在名为“mem_follow”的复选框


或者我必须使用javascript(jquery)?

它必须是javascript。PHP无法从服务器进入浏览器的内脏并为您检查。它只能检查提交的数据中是否存在字段名

在jquery中,它很简单:

if ($('input[name="nameoffield"]')) { ... field exists ... }

当然,这提出了一个问题。。。为什么需要知道字段是否存在?大概是你造了这个形状。您应该已经知道该字段是否存在。

您可以使用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并不重要)


我建议您使用Jquery

$.fn.Exists = function() {
return $(this).length>0;
}

if ($("here are your selector to check").Exists()) {
    ...
}
简单实用!
您可以使用此
Exists
method everywhere))

您可以在
submit
事件处理程序中尝试此代码

if($("input[name=mem_follow]").length > 0){
    //It exists
}

这里的其他答案是正确的:你必须在客户端这样做。对于复选框输入字段,如果未选中该复选框,则不能保证浏览器将包含该字段的POST参数

例如,如果您提交此表单时未选中复选框:

<form action="test.php" method="post">
    <input type="checkbox" name="checkbox" value="YES" />
    <input type="submit" name="submit" value="submit" />
</form>

仅提交
submit=submit
参数


因此,不,您不能保证给定的复选框存在于服务器端的表单中。

对于所有元素,请尝试此方法

number = document.form_name.elements.length;
对于输入的特定名称,请使用此

number = document.form_name.getElementsBYName('Name of Input').length;
就这样


享受

我猜您需要在表单提交后在服务器端进行检查。如果是这样的话,你可以这样检查

<?php
if (isset($_POST['mem_follow']))
{
    // Work your server side magic here
} else {
    // The field was not present, so react accordingly
}
?>


希望这有帮助

在以下脚本中,除非勾选复选框,否则表单不会提交。如果您确实尝试了,则会显示带有错误消息的隐藏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>

您必须勾选该复选框
$('#myform')。提交(函数(){
if($('#复选框').attr('checked')){
返回true;
}否则{
$(“#错误信息_div”).show();
返回false;
}
});
干杯
Matt

您可以通过两种方式完成此操作:

服务器端:在php中

<?php
if (isset($_POST['mem_follow'])
{
    // Work your server side magic here
} else {
    // The field was not present, so react accordingly
}
?>
您可以使用javascript(或jQuery)来实现这一点:

<script>
    $('#myform').submit(function() {
        if($('#yourFieldId').val()=='') {
            alert('the field ' + $('#yourformField').name() + ' is empty !');
            return false;
        } else {
            return true;
        }
    });
</script>

$('#myform')。提交(函数(){
if($('#yourFieldId').val()=''){
警报('字段'+$('#yourformField')。名称()+'为空!');
返回false;
}否则{
返回true;
}
});

您可以一个接一个地对所有字段执行此操作,或者将所有条件放入if语句中。

thaknks。实际上我需要从服务器端下载。有时我在表单中有一个复选框,有时没有。所以我想让它在服务器端变得动态。
if(isset($\u REQUEST['nameofeld']){……它已经提交了……}
Use
if(isset($\u POST['mem\u follow']){//do something}
$('#submit_button').click(function() {
  if ($('input[name="box_name"]')) {
    if($('input[name="box_name"]').attr('checked')) {
        return true;
    } else {
        return false;
    }
  }
});
<script>
    $('#myform').submit(function() {
        if($('#yourFieldId').val()=='') {
            alert('the field ' + $('#yourformField').name() + ' is empty !');
            return false;
        } else {
            return true;
        }
    });
</script>