繁体   English   中英

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

[英]How can I check a input field exists in the form when I submit it to the server?

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

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

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

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

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

希望这可以帮助!

你可以用两种方式做到这一点:

服务器端:在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;
    }
  }
});

它必须是Javascript。 PHP无法从服务器伸出到浏览器的内核并检查你。 它只能检查提交的数据中是否存在字段名称。

在jquery中它是微不足道的:

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

当然,这提出了一个问题......为什么你需要知道一个领域是否存在? 大概你是那个建造形式的人。 如果该字段存在,您应该已经知道。

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

干杯马特

你可以使用javascript(或jQuery)来做到这一点:

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

您可以逐个为所有字段执行此操作,也可以将所有条件放在if语句中。

您可以使用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

我建议你使用Jquery

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

if ($("here are your selector to check").Exists()) {
    ...
}

简单实用! 你可以随处使用这种Exists方法))))

您可以在表单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;

而已

请享用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM