Jquery验证不能正常工作?

时间:2014-03-04 21:15:09

标签: javascript jquery html asp.net css

我正在尝试在asp.net页面中进行必要的验证。 我有多个控件将被隐藏和显示。 像checkboxlistdropdownlistmultiselectedlistbox这样的控件。 我正在使用一个名为required的css类附加到所有这些控件来检查验证。

我正在尝试检查每个控件是否有值,但我的代码正在检查每个控件中的每个选项。

我真的没有找到一种方式而不是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/

2 个答案:

答案 0 :(得分:0)

我认为你想要的是:

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

});

而不是:

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

答案 1 :(得分:0)

您好我对您的小提琴进行了一些更改,基本上我检查了每列中的输入,然后我将它们添加到您的名字数组中。

使用

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

如果返回的数组的长度为0,那么你可以获得在第一列上检查的所有输入,然后没有检查输入,对于其他的,我可以使用相同的过程。

是的,那些输入名称很奇怪。

检查这个小提琴

JSFiddle