2014-03-04 496 views
0

我想在asp.net頁面中做必要的驗證。 我有多個將被隱藏和顯示的控件。 控制像checkboxlist,dropdownlist,multiselectedlistbox。 我正在使用一個叫做required的css類附加到所有這些控件來檢查驗證。Jquery驗證無法正常工作?

我想檢查每個控件是否有價值或不是,但我的代碼檢查每個控件中的每個選項。

我真的沒有找到一個方法不是一個jQuery專家只是一個新手...

這裏是我的代碼的任何想法請人....

    $("input[type='submit']").click(function() { 

        if ($(this).val() != 'Back') { 

         var names = []; 
         var info=" "; 
        $('.required input').each(function() { 
       var control = $(this); 
       if (control.is(':enabled')) { 
         names[$(this).attr('name')] = true; 
       } 
      }); 
      $('.required option').each(function() { 
       var control = $(this); 
       if (control.is(':enabled')) { 
        names[$(this).attr('name')] = true; 
       } 
      }); 
         for (name in names) { 
          var radio_buttons = $("input[name='" + name + "']"); 
          if ((radio_buttons.filter(':checked').length == 0) ||(radio_buttons.filter(':selected').length == 0)) { 
           info += radio_buttons.closest("table").find('label').html()+"</br>"; 
          } 

         } 
        if (info != " ") { 
         $("#validation_dialog p").html(info); 
         $("#validation_dialog").dialog({ 
          title: "Validation Error!", 
          modal: true, 
          resizable: false, 
          buttons: { 
           Close: function() { 
            $(this).dialog('close'); 
           } 
          } 
         }); 
         return false; 
        } 
        } 
       }); 

這裏是它的一個小提琴...

http://jsfiddle.net/bDmgk/35/

+0

你可以嘗試使用jQuery驗證插件。 http://jqueryvalidation.org/documentation/ –

+0

我同意Rick S,更多地使用JQuery。我討厭ASP.NET控件,它創建了難以閱讀的DOM。 – TchiYuan

+0

這是sharepoint visual webpart的一部分,我如何獲取驗證方法。我試圖添加該方法,但它說未定義的方法。因爲它是一個共享點的視覺webpart我沒有其他選項,使用.Net ... – user2664298

回答

0

我想你想要的是:

$(".required input[type='radio']:checked").each(function(){ 

}); 

代替:

$(".required option").each(function(){ ... }); 
0

您好我做了一些修改,以你的提琴基本上我檢查了這樣的每一列中輸入,然後我將它們添加到您的名字排列。

使用

$('table.required:eq(0) input:checked') 

我可以把所有那些在第一列檢查,如果數組返回的lenght是0,那麼沒有輸入檢查,I'T相同的方法完成其他的輸入那些。

是的那些輸入名稱很奇怪。

檢查這個小提琴

JSFiddle

+0

嗨Eduardo非常感謝,似乎工作正是我的想法。但我有一個問題。這是一個動態頁面,沒有特定的順序或不知道將啓用或禁用的控件。這是一個問題驅動的頁面,其中不同的控件將根據答案啓用和禁用。我必須驗證控件,問題是我不知道哪些將被啓用或禁用。它是動態生成的,我希望你的解決方案適用於任何控件。我的目標是三種類型的控件..listbox,checkboxlist,radiobuttonlist ..只是想知道.. – user2664298

+0

當我在尋找第一個元素表,然後第二個,然後第三個我希望這將與其他dinamically生成的問題,也許有一次,當你看到另一個例子時,你需要搜索問題的第一個分區並獲得該分區的標籤。 –

+0

也許一旦看到動態頁面的生成方式,你可以找出一個模式來驗證 –