0

在我的 ASP MVC 页面中,我们有四个或五个不同的菜单可用,具体取决于用户单选按钮组的选择。其中一些字段共享一个文本输入框,我需要将其绑定到。但是,该事件仅在列表中的第一个菜单中起作用。是否可以将相同的事件绑定到共享相同名称的多个输入?

jQuery

    $('#LastName').change(function () {
        if ($('#LastName').val() == '') {
            $('#BankName').html("");
        } else {
            $.ajax({
                type: 'GET',
                url: '@Url.Action("GetBankName", "Agent")',
                data: { routing: $('#RoutingNumber').val() },
                success: function (data) {
                    $('#BankName').val(data);
                    $('#BankName').text(data);
                }
            });
        }
    });

ASP MVC

该 HTML 在加载时出现在页面上,但一次只能fieldset看到一个。

            <fieldset id="Enroll" style="width:380px; display: none;">
            .
            .
                <div class="M-editor-label">
                    @Html.LabelFor(model => model.LastName)<span class="req">*</span>
                </div>
                <div class="M-editor-field">
                    @Html.TextBoxFor(model => model.LastName)
                </div> 
            <fieldset id="ModT" style="width:380px; display: none;">
            .
            .           
                <div class="M-editor-label">
                    @Html.LabelFor(model => model.LastName)<span class="req">*</span>
                </div>
                <div class="M-editor-field">
                    @Html.TextBoxFor(model => model.LastName)
                </div> 
            <fieldset id="ModA" style="width:380px; display: none;">
            .
            .
                <div class="M-editor-label">
                    @Html.LabelFor(model => model.LastName)<span class="req">*</span>
                </div>
                <div class="M-editor-field">
                    @Html.TextBoxFor(model => model.LastName)
                </div>
4

2 回答 2

2

您正在使用 id,但它们应该是唯一的。

这就是它不工作的原因,因为在做的时候$('#LastName'),jquery 使用document.getElementById并且它总是返回一个元素。

改用类。如果您绝对需要多个 id(顺便说一下,这是无效的 HTML),您可以(但我不推荐)使用$('[id=LastName]')

于 2013-07-23T16:18:23.037 回答
1

只需更改 jQuery 选择器?

$('input[name=your-input-name]')

代替:

$('#LastName')

还有活页夹,以涵盖添加的未来输入:

$('input[name=your-input-name]').on("change", function () { });
于 2013-07-23T16:16:00.770 回答