如果Select2字段为空,LiveValidation将提交表单而不验证其他字段

时间:2013-03-13 17:13:36

标签: javascript jquery html validation jquery-select2

我正在使用 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);
...
});

1 个答案:

答案 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
   }