2017-01-16 71 views
0

我正在寻找一种方法来验证多个相扑选择框。我拥有的代码如下。如何将jQuery验证添加到SumoSelect下拉列表中?

HTML

<select class="kid-age form-select" id="edit-age-big-kid-1" name="age_big_kid_1">  
    <option value="">-</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
</select> 

<select class="kid-age form-select" id="edit-age-big-kid-2" name="age_big_kid_2">  
    <option value="">-</option> 
    <option value="3">3</option> 
    <option value="4">4</option> 
    <option value="5">5</option> 
    <option value="6">6</option> 
    <option value="7">7</option> 
</select> 

<select class="kid-age form-select" id="edit-age-small-kid-1" name="age_small_kid_1">  
    <option value="">-</option> 
    <option value="3">0</option> 
    <option value="4">1</option> 
    <option value="5">2</option> 
</select> 

JS

$('.kid-age').SumoSelect(); 

如何可以被需要客户端验证所有的下拉菜单的(可能有多个),并显示单个消息“所有的孩子都需要。“

在此先感谢!

+1

检查生成的代码。插件会创建新的html(ul> li结构),因此您将不得不使用类.opt来检查li。选定的项目获得。选中的类,希望它有帮助...(你将有检查文本()VAL)... – sinisake

回答

1

这里是快速和简单的验证,但它会给你的想法,你可以修改它以满足您的需求:

$(document).ready(function() { 

    $('.kid-age').SumoSelect(); 
    $('#submit').on('click', function() { 
     errors=[]; 
     $('p.SelectBox').each(function() { 

      if($(this).attr('title')==" -") { 



       errors.push('invalid'); 

      } 

     }); 

     if(errors.length>0) { // if there are errors, show message, stop submission, etc... 
       message='All kid ages are required.'; 
       $('.error').text(message); 
      } 
      else { //if no errors, continue with script execution... 
       $('.error').text('fields validated'); 
      } 
    }); 


}); 

插件创建一个特定的p标签(适用于所有下拉菜单)持有选择的选项。 ..所以,你可以检查它的值,如果不同于' - ',继续执行脚本,否则会抛出错误。

看到它的行动:https://jsfiddle.net/g7bLbevy/

+0

这工作像一个魅力,谢谢! –

+0

Np,很高兴帮助。 :) – sinisake

+0

将代码基于内部和未公开的插件功能并不是一个好主意,因为它可能会在下一个发行版本中更改。 – MaxZoom