jQuery - Динамично добавляющая проверка управляет к нескольким текстовым полям

Я пытаюсь добавить правило проверки к нескольким текстовым полям динамично. Вот js:

            //validate form.
            $("#SubmitForm").validate();
            $("input[id*=Hours]").rules("add", {
                number: true,
                messages: {
                    number: "Please enter a valid Hours"
                }
            });

Это применяет правило к самому первому текстовому полю на странице с "Часами" в идентификаторе, но затем это не применяет его ни к одному из других.

Кто-либо знает что случилось здесь?

Спасибо, Justin

10
задан Justin 14 June 2010 в 02:11
поделиться

2 ответа

Вы можете добавить правило к каждому элементу, соответствующему селектору подстановочных знаков, с помощью .each () , например:

$("#SubmitForm").validate();
$("input[id*=Hours]").each(function() {
    $(this).rules("add", {
        number: true,
        messages: {
            number: "Please enter a valid Hours"
        }
    });
});

Надеюсь, это поможет!

10
ответ дан 4 December 2019 в 01:29
поделиться

Мне удалось заставить его работать следующим образом:

<%
           int index = 0;
           foreach (var log in Model.InvoiceLogs) { 
            %>
                <tr>
                    <td class="topalign">
                        <%: log.LogDate.ToShortDateString() %>
                        <%: Html.Hidden("InvoiceLogs[" + index + "].InvoiceID", log.InvoiceID) %>
                        <%: Html.Hidden("InvoiceLogs[" + index + "].InvoiceLogID", log.InvoiceLogID) %>
                    </td>
                    <td class="editor-field-medium"><%: Html.TextArea("InvoiceLogs[" + index + "].Description", Convert.ToString(ViewData["Description_" + log.InvoiceLogID]))%></td>
                    <td class="editor-field-small topalign">
                        <%: Html.TextBox("InvoiceLogs[" + index + "].Hours", ViewData["Hours_" + log.InvoiceLogID])%>
                        <script type="text/javascript">
                            $(document).ready(function () {
                                $("#InvoiceLogs_<%: index %>__Hours").rules("add", {
                                    number: true,
                                    messages: {
                                        number: "Invalid Hours"
                                    }
                                });
                            });
                        </script>
                    </td>
                </tr>
            <% 
               index++;
           } 
           %>
        </table>

Однако это не кажется хорошим решением. Как лучше всего динамически добавлять правила проверки в список элементов управления вводом?

0
ответ дан 4 December 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: