【问题标题】:How to add jQuery validation to SumoSelect drop downs?如何将 jQuery 验证添加到 SumoSelect 下拉列表?
【发布时间】:2017-01-16 19:27:25
【问题描述】:

我正在寻找一种方法来验证多个相扑选择框。我的代码如下。

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();

我如何在客户端验证所有需要的下拉菜单(可能有多个)并显示一条消息“所有儿童年龄都是必需的。”

提前致谢!

【问题讨论】:

  • 检查生成的代码。插件会创建新的 html(ul > li 结构),因此您必须使用 .opt 类检查 li。选定的项目获得 .selected 类,希望对您有所帮助...(您将检查 text() val)...

标签: javascript jquery sumoselect.js


【解决方案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/

【讨论】:

  • Np,很高兴为您提供帮助。 :)
  • 将您的代码基于内部和未记录的插件功能不是一个好主意,因为它可能会在下一个版本中更改。
  • @MaxZoom,是的,但想法总是一样的 - 检查生成的 html,查看扮演“选定选项”角色的(查找元素),并使用它......比添加选项更好(更改插件)自行插入,对吗?这样,代码至少与插件核心分离,并且可以轻松修改以供将来使用...
  • this这样的做法似乎更容易
  • @MaxZoom,将其发布为答案 :) 我没有意识到下拉(选择)是活动的,并且值实际上已更改,因此很容易检查它们:)。跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-08
  • 2012-03-12
相关资源
最近更新 更多