必需的字段验证不起作用

时间:2019-01-30 09:20:14

标签: php html codeigniter

我有以下代码:

//*[@id="studentListTable"]/thead/tr/th[contains(., "Actions")]//following::button[
    following::*[@id="studentListTable_info"]
]

在我必须输入用户位置的第一部分中,我要求输入,但是当我单击“下一步”按钮时,即使我已要求输入,它仍然允许我进入下一个阶段。有人可以协助我解决该错误吗?

4 个答案:

答案 0 :(得分:0)

您误提交按钮。将按钮类型为submit而不是按钮

<button type="submit" id="button-next-1" class="btn button-next btn-primary" data-step_index="1">
    <?= lang('next') ?>
    <span class="glyphicon glyphicon-forward"></span>
</button>

注意::如果您不想在此步骤上submit,则必须通过javascript或在完成所有逐步的php操作后验证您的字段

答案 1 :(得分:0)

必填属性仅适用于表单内的输入字段。

如果您不想使用任何形式对其进行验证,则可以使用javascript这样的代码来实现:

document.getElementById('your_input_id').validity.valid

https://stackoverflow.com/a/7741277/10429036

答案 2 :(得分:0)

您需要在给定代码开始之前添加表单标签,然后在给定代码末尾关闭表单标签。

答案 3 :(得分:0)

HTML中的required属性是在客户端而不是服务器端验证的。仅当您的按钮具有type="submit"属性并且浏览器支持它时(大多数现代浏览器都支持),该功能才起作用

由于您是专门提到Codeigniter的,因此我认为您的问题不仅是提交表单,还包括您的控制器正在处理表单输入的事实。要强制执行所需的验证(这是一种很好的做法:您应该始终在客户端和服务器端都强制执行验证),您需要使用CI的表单助手,并定义适当的form_validation规则,如下所示:

$this->form_validation->set_rules('post_field', 'description', 'required');

,然后执行以下操作来运行表单验证例程:

if ($this->form_validation->run() == false)
{
    // here you'd do something if the validation fails, like redirecting back to the form, show an error message or whatever
}

else
{
    // here you'd do something if the validation passes like actually processing the form input
}