代码之家  ›  专栏  ›  技术社区  ›  Patricia

jquery validate:根据不同表单字段是否有值,添加带有自定义消息的必需规则

  •  2
  • Patricia  · 技术社区  · 15 年前

    我知道这似乎是个重复的问题,但我读过所有其他的问题,它们都不太一样:(

    我有一些下拉列表,如果它们有其他选项,则选择值为“0”的选项,则需要相应的到期日期字段。

    我尝试将规则放入对象类中,并使用rules('add')函数。我现在的处境是:

    $('[id^=ExpiryDate]').each(function() {
    
        $(this).rules('add',
        { required: function() {
            if ($('#q' + id).val() == '0') {
                return false;
            }
            else {
                return true;
            }
        } 
        }
    );
    

    我的到期日期字段的id为“expiryDate1”、“expiryDate2”,相应的下拉列表的id为“q1”和“q2”。

    这使我的脚本失败。它不会在错误控制台或firebug中给出任何错误。但它也不会执行之后发生的任何javascript。

    我有一种感觉,这是一件很明显很愚蠢的事情,我错过了。但我已经盯着这个代码看了几个小时了,却找不到它!

    提前谢谢!

    1 回复  |  直到 15 年前
        1
  •  4
  •   Nick Craver    15 年前

    试试这个:

    $('[id^=ExpiryDate]').each(function() {
      var id = $(this).attr('id').replace('ExpiryDate','');
      $(this).rules('add', { 
        required: function() {
          return $('#q' + id).val() !== '0';
        } 
      }
    );
    

    目前,您的 id 是未定义的,所以它没有找到任何元素。剩下的只是一个简短的版本。

    推荐文章