2012-02-08 58 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