我正在使用 LiveValidation 进行客户端表单验证。 http://livevalidation.com/examples
我还有一个多选表单字段,其中应用了 Select2 。
问题是,如果我将 Select2 字段留空(不选择任何内容),那么我的表单将在按下“提交”按钮后自行提交,而不验证任何其他表单字段。
但如果我在 Select2 字段中选择了某些内容并尝试提交表单,那么 LiveValidation 将尝试验证其他字段(包括表单中的Select2 字段)如果验证失败 - 表单不会提交并提示用户先修复错误。
更新:即使我从多选表单字段中删除了Select2,LiveValidation仍然会在保留为空/无选择时跳过验证。
应用 Select2 的选择字段(我使用PHP函数getSelectOptions 在表中的单个列中填充select的选项和行的值):
<form id="myform" name="myform" method="post" action="myscript.php">
...
<select id="myselect" name="myselect[]" multiple="multiple">
<?php getSelectOptions("table_name", "column_name"); ?>
</select>
...
</form>
以下是我如何将 Select2 应用于文件前面的选择字段:
$(function()
{
...
$('#myselect').select2({ placeholder: "Select items" });
...
});
此处我将 LiveValidation 应用于 Select2 之后的选择字段(添加 Validate.Presence 我告诉它select字段不能为空/需要具有值):
$(function()
{
...
var myselect = new LiveValidation("myselect", { onlyOnSubmit: true });
myselect.add(Validate.Presence);
...
});
答案 0 :(得分:0)
<input type="text" value="Your Name" name="name" onblur="if (this.value == '') {this.value = 'Your Name';}" onfocus="if (this.value == 'Your Name') {this.value = '';}" />
将“您的姓名”替换为适合您情况的内容。如果用户没有填写此字段,它将恢复为该值并失败
哦,我误解了,所以澄清而不是使用onlyonSubmite:true ...会添加一个ifelse作品。
if(!myselect) {
throw error
else {
//do what you need
}