HTML5验证错误 - 卡在“无效”状态'环

时间:2016-08-25 09:09:17

标签: php html5

这个可能很简单,但它仍然困扰着我。

我有一个嵌入在php中的表单,我需要在其上执行验证。

其中一个字段的示例是:

Server 1:
</td>
<td>
    <input name='1_server[1]' value='$defaultserver1' id='server1' required oninvalid="this.setCustomValidity('Please enter server name/IP Address for this connection')">
</td>
</tr>

...按照上面的说法,我有一个默认值,可以在页面加载时设置/插入,但我主要想要满足,如果没有设置。

如果删除该字段,验证工作正常。问题是,在现场重新输入仍然存在显示无效警告。

总结:

如果字段为空,并且单击了表单提交按钮,则会显示验证警告。但是,你不能在这一点之后填写表格,因为它似乎已经卡住了#39;即使您完成了该字段,也认为该字段无效。

有人可以帮忙吗?毫无疑问,我很软......

修改:在这里https://jsfiddle.net/v03sb4hq/

2 个答案:

答案 0 :(得分:3)

解决了这个问题。

设置oninvalid="setCustomValidity('please fill in')"标志,在无效输入时,将有效性设置为固定状态“无效”。

要反作用,我需要在同一字段上检测到输入时声明清除标记,即oninput="setCustomValidity('')"

所以,我修改后的代码现在......

<input name='1_server[1]' value='$defaultserver1' id='server1' required oninvalid="setCustomValidity('Please enter server name/IP Address for this connection')" oninput="setCustomValidity('')"&GT;

此处更新了小提琴: https://jsfiddle.net/v03sb4hq/2/

答案 1 :(得分:-1)

$defaultserver1是php变量吗?在这种情况下,我认为你必须在HTML代码中回应它。

<input name='1_server[1]' value='<?php echo $defaultserver1;?>' id='server1' required oninvalid="this.setCustomValidity('Please enter server name/IP Address for this connection')">