2012-02-08 52 views
0

大家好,我有两个的复选框和一个按钮的窗体上使用jquery验证的复选框,并显示自定义警报

我用的是下面的提醒自定义提醒,按我的需要

http://www.abeautifulsite.net/blog/2008/12/jquery-alert-dialogs/

<form id="form1" runat="server"> 
<asp:CheckBox ID="checkArray" runat="server" Text="Check Me" /> 
<asp:CheckBox ID="checkArray1" runat="server" Text="Check Me" /> 
<p> 
    <asp:button id="btnDelete" text="Show Alert"/> 
</p> 
</form> 

我写剧本,以确定是否复选框检查或不如下

<script type="text/javascript"> 

    $(document).ready(function() { 
     $("#btnDelete").click(function() { 
      var inputs = document.getElementsByTagName("input"); 
      var flag = 0; 
      for (var i = 0; i < rbs.length; i++) { 
       if (rbs[i].type == "checkbox") { 
        if (rbs[i].checked) { 
         flag = 1; 
         break; 
        } 
       } 
      } 
      if (flag == 0) { 
       alert('msg'); 
       //var atLeastOneIsChecked = $('#checkArray :checkbox:checked').length > 0; 

       //if (atLeastOneIsChecked == 0) { 
       jAlert('Select One', 'Alert Dialog'); 

      } 
     }); 
    }); 

</script> 

但我无法看到所需的警报。凡为下面的一个完美的作品

<form id="form1" runat="server"> 

    <fieldset id="checkArray"> 
     <div> 
      <input name="list" id="list0" type="checkbox" value="newsletter0">zero</div> 
     <div> 
      <input name="list" id="list1" type="checkbox" value="newsletter1">one</div> 
     <div> 
      <input name="list" id="list2" type="checkbox" value="newsletter2">two</div> 
    </fieldset> 
    <p> 
     <input id="btnDelete" type="button" value="Show Alert" /> 
    </p> 
    </form> 

<script type="text/javascript"> 

    $(document).ready(function() { 
     $("#btnDelete").click(function() { 
      var atLeastOneIsChecked = $('#checkArray :checkbox:checked').length > 0; 

      if (atLeastOneIsChecked == 0) { 
       jAlert('Select One', 'Alert Dialog'); 

      } 
     }); 
    }); 

</script> 

我们工作了这一点同样使用我应该在哪里改变任何一个可以帮助我asp.net控制..

回答

0

毕竟我解决它添加到假剧本很适合我

<script type="text/javascript"> 

    $(document).ready(function() { 
     $("#btnDelete").click(function() { 
      var atLeastOneIsChecked = $('#checkArray :checkbox:checked').length > 0; 

      if (atLeastOneIsChecked == 0) { 
       jAlert('Select One', 'Alert Dialog'); 

      } 
      else { 
       $("#btnDelete").click(function() { 
        var atLeastOneIsChecked = $('#checkArray :checkbox:checked').length > 0; 

        if (atLeastOneIsChecked == 0) { 
         jAlert('Select One', 'Alert Dialog'); 
         //return false; 
        } 
        else { 
         jConfirm('Can you confirm this?', 'Confirmation Dialog'); 
         //return false; 
        } 

       }); 
      } 
      return false; 
     }); 

    }); 

</script> 
2

要保存的复选框中input

var inputs = document.getElementsByTagName("input"); 

而是通过rbs循环:

for (var i = 0; i < rbs.length; i++) { 

如果您在网站上使用jQuery,这将是明智的做法。我很确定你可以这样做:

$(document).ready(function() { 
    var form = $('#form1'); 
    $("#btnDelete").click(function() { 
     if (!form.find(':checkbox:checked').length) { 
      jAlert('Select One', 'Alert Dialog'); 
     } 
    }); 
}); 

...在您的ASP形式。

+0

喜,但在一瞬间 – Dotnet 2012-02-08 11:01:31

+0

是越来越显示警告信息,并中断,即使我用'inputs'我不能拿到警报 – Dotnet 2012-02-08 11:09:45

+0

如果警报闪烁,则与上述代码无关。这是一个概念证明,用它作为出发点:http://jsfiddle.net/W3kpM/ – David 2012-02-08 12:42:38