2011-10-08 114 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或'包含'是你方程的一部分的事實應該是無關緊要的。 –