Как использовать этот код, работающий, если я использую контроль веб-пользователя asp.net? - PullRequest
0 голосов
/ 27 января 2011

Как использовать этот код, работающий, если я использую контроль веб-пользователя asp.net?

</head>
<body>
    <form id="form1" runat="server">
    <div>

      <asp:CheckBox ID="CheckBox1" runat="server" /><br />
<asp:CheckBox ID="CheckBox2" runat="server" /><br />
<asp:CheckBox ID="CheckBox3" runat="server" /><br />
<asp:CheckBox ID="CheckBox4" runat="server" /><br />
<asp:CheckBox ID="CheckBox5" runat="server" /><br />
<asp:CheckBox ID="CheckBox6" runat="server" /><br />
<asp:CheckBox ID="CheckBox7" runat="server" /><br />
<asp:CheckBox ID="CheckBox8" runat="server" /><br />
<asp:CheckBox ID="CheckBox9" runat="server" /><br />
<asp:CheckBox ID="CheckBox10" runat="server" /><br />
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
    <script src ="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
    <title>Untitled Page</title>
    <script type="text/javascript">

      $("#sumit").click(function(){

    var vCheckedCBCount =  $("input:checkbox").filter(function(index){ 
    return $(this)[0].checked == true;
    }).length;
    if(vCheckedCBCount > 5)
    {
        alert('You cannot check more than 5 check box.');
        return false;
    } 
});
 </script >
</body>
</html>

Ответы [ 2 ]

1 голос
/ 27 января 2011

Пара вещей:

Первый

  $("#sumit").click(function(){...}

Ищет элемент HTML с идентификатором 'sumit' (# означает идентификатор в JQuery).

Если вы просмотрите исходный текст своей страницы, вы увидите, что Button1 при преобразовании ASP.Net в кнопку на стороне HTML не будет иметь этого идентификатора, поскольку ASP.Net сгенерирует довольно нечитаемый уникальный идентификатор клиента - что-то, полное $вероятно, знаки и подчеркивания.

Jquery может найти вашу кнопку по классу, используя $ ('. myClass') - '.'означает «класс» так же, как «#» означает «ID», поэтому просто добавьте класс submit в ваш ASP.Net Button1:

<asp:Button ID="Button1" runat="server" Text="Button" CssClass='submit' />

Затем измените ваш вызов JavaScript: во-первых, убедитесь, что обработчики событийстановятся готовыми, когда документ готов, оборачивая ваш javascript в стандартный синтаксис JQuery, чтобы сделать это:

$(document).ready(function () {
    //Your Javascript goes in here.
});

Так что при переделке это выглядит так (я переместил несколько вещей вокруги вытащил ваш <title> элемент.)

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        $(".submit").click(function () {

            /* this code is here for demo purposes only - 5arx*/
            var numchecked = 0;

            $('input:checkbox').each(function () {
                if ($(this).attr('checked')) {
                    //alert('checked');
                    numchecked++;
                }
            });

            if (numchecked > 5) {
                alert('You cannot check more than 5 check box.');
            }

            return false; //This will stop your ASP.Net button submitting the form via a Postback.
            /* Your orginal code.
            var vCheckedCBCount = $("input:checkbox").filter(function (index) {
            return $(this)[0].checked == true;
            }).length;

            if (vCheckedCBCount > 5) {
            alert('You cannot check more than 5 check box.');

            }
            */
        });
    });
</script>
<div>
    <asp:CheckBox ID="CheckBox1" runat="server" /><br />
    <asp:CheckBox ID="CheckBox2" runat="server" /><br />
    <asp:CheckBox ID="CheckBox3" runat="server" /><br />
    <asp:CheckBox ID="CheckBox4" runat="server" /><br />
    <asp:CheckBox ID="CheckBox5" runat="server" /><br />
    <asp:CheckBox ID="CheckBox6" runat="server" /><br />
    <asp:CheckBox ID="CheckBox7" runat="server" /><br />
    <asp:CheckBox ID="CheckBox8" runat="server" /><br />
    <asp:CheckBox ID="CheckBox9" runat="server" /><br />
    <asp:CheckBox ID="CheckBox10" runat="server" /><br />
    <asp:Button ID="Button1" runat="server" Text="Button" CssClass="submit" />
</div>

Надеюсь, это поможет.Для получения более полезной информации о JQuery посетите сайт www.visualjquery.com - интерактивный инструмент тестирования и обучения JQuery.

Hth.Удачи: -)

0 голосов
/ 27 января 2011

$("#sumit") ищет элемент с ID = "sumit", которого нет ни у одного из ваших элементов. Предполагая, что вы хотите перехватить событие нажатия вашей кнопки, попробуйте $("#Button1").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...