2011-10-08 116 views
1

我使用了一个表单,我想验证几个文本框元素,并且我不想要这些元素,我正在使用jquery .not(),但是我没有得到想要的结果我在做一些ayntax错误或东西在这里是我的代码从jQuery验证中排除某些表单元素

function validateRegisterClick(){ 
    var isValid = true; 
    // Validate User Information. 
    $('input[type=text], input[type=password]').not(':input[id$=txtMob], :input[id$=txtOfficeNo]').each(function() { 
      if ($(this).val().length <= 0) { 
       $(this).next() 
         .fadeIn('slow') 
         .removeClass() 
         .addClass('failure') 
         .fadeIn('slow') 
         .text("Can't be blank."); 
       isValid = false; 
      } 
}); 
} 

还包括txtMob和txtOfficeNo因为我使用外部所以我用这个语法 --thanks 的Mac

+0

看到表格,然后了解最终的目标将是有益的。与此同时,选择器似乎被正确地格式化,用于以下目的:“选择文本类型或输入密码的所有输入,除非它们的ID在其中具有文本'txtMob'或'txtOfficeNo'”。如果这就是选择器要做的事情(简化演示:http://jsfiddle.net/hueaM/),那很好,问题在于代码中的其他地方。 –

+0

我已经调试了我的脚本,并检查了它在返回'isValid = false'的情况下的id,我得到的是'ContentPlaceHolder1_txtMob'和'ContentPlaceHolder1_txtOfficeNo' – Mac

+0

这恰好符合我如何解释你的选择器。哪里有问题?附注:你正在重塑一个不需要重新发明的车轮。 jQuery的官方验证插件效果很好,并有任何简单的API。 –

回答

0

改变我上面的代码行解决了这个问题:

$('input[type=text], input[type=password]').not(':input[type=text][id$=txtMob], :input[type=text][id$=txtOfficeNo]').each(function() 
0

排除JavaScript文件与 -

的ID
$('input').not('input[id$=txtMob], input[id$=txtOfficeNo]').each(function() { 
    alert($(this).attr('id')); 
}); 
+0

这不排除子串匹配,我相信他是打算做的。 –

+0

我正在使用外部js文件,该页面还包含一个母版页我很抱歉,我没有提到,所以在这种情况下,我认为#txtMob和#txtOfficeno不会工作 – Mac

+0

我不理解什么是'外部js'和'主页'与此有​​关。 JS或'包含'是你方程的一部分的事实应该是无关紧要的。 –