2011-11-21 64 views
1

让我们假设我有形式2键说按钮btnAbtnB。我想用validate.js 来验证我的形式,我尝试:捕捉单击事件和使用validate.js

var v = $("#form1").validate({ 
    ignore: ':hidden', 
    rules: { 
     if(--btnA is clicked--){ 
      txtMenuName: { required: true } 
     } 
     if(--btnB--){ 

      txtLinkTitle: { required: true }, 
      txtExternalLink: { required: true } 
     } 
    }, 
    messages: { 
     txtMenuName: "*", 
     review: "*", 
     txtLinkTitle: "*", 
     txtExternalLink: "*" 

    } 
}); 

,但我无法捕捉哪个按钮是Click.Plz有助于解决我的问题。

+0

我没有时间为此写一个正确的答案,但我认为你错了。您需要捕获btnA和btnB的点击事件,然后在那里处理验证呼叫。您可能还必须处理表单的提交事件。我对validate.js不熟悉,现在为你写代码,对不起。 – mason81

+0

此外,在这种情况下知道有2个提交按钮的目的是有帮助的......也许一个带有收音机选项的按钮会更好? – mason81

+0

@ mason81第一个按钮创建菜单,并在数据库中存储第二个按钮创建菜单item.any想法如何解决。谢谢。 –

回答

1

我试图提交这个作为编辑Baszz的答案,但我没有权限,所以这里是一些应该帮助的示例代码。

$(function(){ 
    $('#btnA').click(function(){ 
     $(this).addClass('clicked'); 
     $('#btnB').removeClass('clicked'); 
    }); 
    $('#btnB').click(function(){ 
     $(this).addClass('clicked'); 
     $('#btnA').removeClass('clicked'); 
    }); 
}); 

var v = $("#form1").validate({ 
    ignore: ':hidden', 
    rules: { 
     if($('#btnA').hasClass('clicked'){ 
      txtMenuName: { required: true } 
     } 
     if($('#btnB').hasClass('clicked'){ 

      txtLinkTitle: { required: true }, 
      txtExternalLink: { required: true } 
     } 
    }, 
    messages: { 
     txtMenuName: "*", 
     review: "*", 
     txtLinkTitle: "*", 
     txtExternalLink: "*" 

    } 
}); 
0

我假设按钮首先触发验证,所以您应该能够通过点击按钮来查看'this'变量。否则,向点击事件处理程序添加一个按钮,将“单击”类切换到当前按钮,在您的验证代码中检查该类的存在,并知道哪个按钮被点击。