无法在页面上找到所有表单

时间:2014-03-05 15:35:57

标签: jquery asp.net

我正在使用asp.net,并在页面上放置了两个引导模式,两者都包含一个表单元素。 asp.net还带来了一个表单,它包含了所有内容,因此总的来说我应该在页面上有3个表单。每当我尝试找到第二个表单(DevGroupFormEdit)时,jquery无法找到它,返回undefined。如果我尝试$("form").length我得到2,它会显示一个是asp.net形式(id = aspnetForm),其他是第三个(id = newDevGroupForm)。下面是两个模态,它们包含在同一个父div中:

    <div class="modal fade" id="editDevGroupModal" tabindex="-3" role="dialog" aria-hidden="true" data-bind="with: selectedTag">
    <div class="modal-dialog">
        <form id="DevGroupFormEdit">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                    <h4 class="modal-title">Edit Dev Group</h4>
                </div>
                <div class="modal-body">

                    <div class="form-horizontal">
                        <div class="form-group">
                            <label class="col-md-3 paddingTop3">
                                Group Name:
                            </label>
                            <div class="col-md-9">
                                <input type="text" id="txtEditName" name="txtEditName" class="form-control" data-bind="value: copyname" />
                            </div>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" id="btnCancelEdit" class="btn btn-primary btn-sm buttonsize" data-dismiss="modal">Cancel</button>
                    <button type="button" id="btnSave" class="btn btn-primary btn-sm buttonsize">Save</button>
                    <div class="marginTop10">
                        <span class="label-danger" id="lblErrorEdit" style="display: none;">An error occurred while saving this record.</span>
                    </div>
                </div>
            </div>
            <!-- /.modal-content -->
        </form>
    </div>
    <!-- /.modal-dialog -->
</div>
<!-- /.modal -->

和jquery能够找到的那个是:

    <div class="modal fade" id="newDevGroupModal" tabindex="-2" role="dialog" aria-hidden="true">
    <div class="modal-dialog">
        <form id="newDevGroupForm">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                    <h4 class="modal-title">Create New Dev Group</h4>
                </div>
                <div class="modal-body">

                    <div class="form-horizontal">
                        <div class="form-group">
                            <label class="col-md-3 paddingTop3">
                                Group Name:
                            </label>
                            <div class="col-md-9">
                                <input type="text" id="txtNewDevGroupName" name="txtNewDevGroupName" class="form-control" />
                            </div>
                        </div>
                    </div>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-primary btn-sm buttonsize" data-dismiss="modal">Cancel</button>
                    <button type="button" id="btnSaveNew" class="btn btn-primary btn-sm buttonsize">Save</button>
                    <div class="marginTop10">
                        <span class="label-danger" id="lblNewError" style="display: none;">An error occurred while creating this record.</span>
                    </div>
                </div>
            </div>
            <!-- /.modal-content -->
        </form>
    </div>
    <!-- /.modal-dialog -->
</div>
<!-- /.modal -->

它们非常相似,只是不确定为什么第二个(id = DevGroupFormEdit)保持返回未定义,或者为什么$('form')也无法找到它。

1 个答案:

答案 0 :(得分:1)

  

“asp.net还带来了一个表单,它包含了所有内容”

这是你的问题。你不能嵌套表格。如果你检查元素,你会注意到你的<form>标记被DOM剥离了。

修复的唯一方法是不嵌套表单。

附注:在测试中,Firefox和Chrome剥离了一个表单标记,而另一个表单标记则被搁置。 IE剥离了一个表单标签,并将第二个表单移到了包装所有内容的“asp.net”表单之外。