这个可能很简单,但它仍然困扰着我。
我有一个嵌入在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;即使您完成了该字段,也认为该字段无效。
有人可以帮忙吗?毫无疑问,我很软......
答案 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')">