marine88 Ответов: 2

Создайте счетчик символов для ретранслятора с помощью элемента управления textarea.


У меня возникла проблема, пытаясь выяснить, как создать ретранслятор с текстовой областью, которая имеет счетчик символов с помощью javascript. Неужели нет никакого способа сделать это?

У меня есть много дополнительных вещей в моем javascript, когда я пытаюсь что-то понять, но вы получаете картину. Я также прикрепил свой HTML-код для ретранслятора. В основном ретранслятор пуст до тех пор, пока не будет представлен выбор. Затем ретранслятор заполняется данными. Я программно заполняю метку подсчетом и оттуда хочу, чтобы эта метка обновлялась подсчетом по мере того, как пользователь вводит данные в текстовую область. Вот где я застрял...Я не могу дотянуться до этикетки.
  <div id="uploadDiv" style="border-style: solid; border-width: 2px; border-color: inherit;">
            <asp:Repeater ID="UploadRepeater" runat="server" EnableViewState="True" OnPreRender="UploadRepeater_Prerender">

                <itemtemplate>
                    <table id="ParaRepeater">

                        <tr style="border: solid;">
                            <td>
                                <table>
                                    <tr>
                                        <td>
                                            <asp:Label ID="ParaNumber" runat="server" Font-Size="10px">Para No.
                                        </td>
                                        <td>
                                            <asp:TextBox ID="txtParaNum" runat="server" Width="40px" Text='<%# Eval("ParaNumber") %>'>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="lblLoadtoNepa" runat="server" Font-Size="10px" Width="100px">Load To Nepa-Pams
                                        </td>
                                        <td>
                                            <asp:CheckBox ID="ckSelectPara" runat="server" />
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="lblTooLong" runat="server" Font-Size="10px" Width="100px">Too Long Chars
                                        </td>
                                        <%-- <td><br /><span id="spnCharLeftcounter"  runat="server" class="counterClass "><br />
                                          <%--<asp:TextBox ID="txtTooLong" Width="20px" runat="server" CssClass="counterClass" Text='<%# Eval("CharCount")%>'>
                                              <input type="text" name="remCount" size="3" maxlength="3" value="255" readonly="" /> --%>
                            </td>
                        </tr>
                    </table>


                    </td>
                            <td>
                                <table>
                                    <tr>
                                        <td>
                                            <asp:Label ID="lblChap" runat="server" Font-Size="10px">Chapter (# or words)Tag 1
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:TextBox ID="txtChapter" runat="server">
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="lblPageorSheet" runat="server" Font-Size="10px">Page or Sheet Tag 2
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:TextBox ID="txtPageSheet" runat="server">
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="lblParagraphNumber" runat="server" Font-Size="10px">Paragraph Para# Tag 3
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:TextBox ID="txtParagraphNumber" runat="server">
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:Label ID="lblSentenceBullet" runat="server" Font-Size="10px">Sentence Bullet tag 4
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            <asp:TextBox ID="txtSentenceBullet" runat="server">
                                        </td>
                                    </tr>
                                </table>
                            </td>

                    <td>
                        <table>
                            <tr>
                                <td>
                                    <asp:TextBox ID="txtParaVerbatim" runat="server" Width="300px" Height="200px" TextMode="MultiLine"  onkeyup="javascript:countDownSum(this);" CssClass="counterClass" Rows="10" MaxLength="2000" Text='<%# Eval("FieldText")%>'>
                                   <%-- <asp:TextBox ID="txtParaVerbatim" runat="server" Width="300px" Height="200px" TextMode="MultiLine" onkeyup="javascript:updateCount(this);" onkeydown="javascript:updateCount(this);"  Rows="10" MaxLength="2000" Text='<%# Eval("FieldText")%>'>--%>
                                    <div id="divcounter">
                                        <asp:Label runat="server" Text="Characters Left:"><asp:Label ID="counter" runat="server" Text='<%# Eval("CharCount")%>' CssClass="counterClassDisplay"></div>
                                    <asp:Label ID="characterLeft" runat="server" CssClass="counterClass">
                                    <span id="characters"></span>

                                </td>
                            </tr>
                        </table>
                        </td>
                    </tr>
                    </table>
                </itemtemplate>

</div>


Что я уже пробовал:

Получил это из другой публикации статьи. Пытался заставить его работать, но застрял в последней части.

<script type="text/javascript">

        function RepeaterData() {
            var size = $('.nameLabel').length;
            for (i = 0; i < size; i++) {
                var name = $('.nameLabel').eq(i).text();
                var id = $('.IdLabel').eq(i).text();
                var mylabel = "Don't know how to get to write to my label?"
            }
        }

    </script>

ZurdoDev

Что ты пытаешься сделать?

Karthik_Mahalingam

вы хотите отобразить счетчик при загрузке страницы или при изменении текста?
разместите код разметки

2 Ответов

Рейтинг:
19

Karthik_Mahalingam

попробовать это

<script>

        $(function () { RepeaterData(); });

        function RepeaterData() {
            var textAreas = $('[id*="txtParaVerbatim"]');
            debugger;
            var labels = $('.counterClassDisplay');
            var count = textAreas.length;
            var max = 2000;
            for (var i = 0; i < count; i++) {
                var charLength = textAreas[i].value.length;
                var remaining = max - charLength;
                labels[i].innerText = remaining;
            }
        }


        function countDownSum(textbox) { 
            var value = textbox.value;
            var length = value.length
            var max = 2000;
            var remaining = max - length;
            $(textbox).parent().find('.counterClassDisplay').text(remaining);
        }


    </script>


marine88

Попробуйте оба? Является ли любой из них сингулярным решением?

Karthik_Mahalingam

первая функция покажет оставшееся количество на странице laod
вторая функция будет отображать оставшееся количество событий нажатия клавиши на элементе управления textarea.

второе обязательно, первое-по вашему желанию

marine88

Это сработало...я не знал, что мне нужно начинать с корневого или родительского уровня. Большое спасибо!!

Рейтинг:
0

F-ES Sitecore

$('.myLabel').eq(i).html("Put your text here");