Обработка jquery событий текстового поля внутри цикла Razor Foreach - PullRequest
0 голосов
/ 30 марта 2020

У меня есть TextArea (и под ним div, который показывает количество символов) внутри Razor для l oop. При изменении текста элемента управления рассчитывается и отображается количество символов.

Чтобы сделать это, мне нужно захватить событие изменения textarea и получить доступ к следующему div и установить текст. Я не мог этого сделать. Цени любую помощь, и ниже приведен код.

cs html:

 for (var index = 0; index < Model.List?.Count; index++)
    {            
        <div class="form-group row">
            <div class="col-md-12">
                <label class="control-label" style="text-align: left;">Message Text: </label>
                @Html.TextAreaFor(model => model.List[index].Message, 5, 100,
                    HtmlAttributeHelper.ConditionalDisable(disableFlag, new
                         {
                             @class = "form-control messageText",
                             maxlength = "512",
                             style = "width:100%;",
                             //name = "messageText",
                             spellcheck = "true"
                             //onkeyup = "onMessageChange(this, " + @index + ')'
                         }))
            </div>
            <div class="col-md-12" class="charCounter">Characters(s) Count</div>
        </div>
 }

Я попытался использовать метод onkeyup = onMessageChange (который комментируется), а также доступ к нему в document.ready , Хотя события инициированы, я не смог получить доступ к textarea / div.

javascript:

 $(document).ready(function () {
        $(".messageText").keyup(function() {
            alert("changing");
            $(this).next(".charCounter").innerText = "100 Characters test";
        });
    });

 function onMessageChange(obj, id) {
        $(this.id).val(0);
        debugger;
        var maxLen = obj.maxLength;
        var len = obj.innerText.length;
        if (len > maxLen) {
            obj.innerText = obj.innerText.substring(0, maxLen);
        } else {
            $("div").next("charCount").html("Character(s) Counter: " + len + "/" + maxLen);
            //Approx Nos of Message(s): 1
        }
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...