Tôi đang sử dụng giao diện người dùng Jquery để hiển thị các tab. Trong một trong các tab, tôi có một hộp thoại. Nếu tôi điều hướng đến tab đó, mở hộp thoại, đóng hộp thoại, điều hướng khỏi tab rồi quay lại và mở hộp thoại, tôi kết thúc với nhiều phần tử HTML trùng lặp trong DOM.Hộp thoại Jquery - hộp thoại được thêm nhiều lần vào DOM
Nói cách khác ...
Tôi đã có thiết lập trang chính của tôi với các tab:
<div id="groupTabs" style="width:600px; height:600px; display:none">
<ul>
<li><a href="tab1.aspx"><span>Info</span></a></li>
<li><a href="tab2.aspx"><span>Associations</span></a></li>
</ul>
</div>
Tab # 2 chứa một hộp thoại:
<div id="dgEvent">
<input id="someId">
</div>
...
$("#dgEvent").dialog();
Tôi đã thấy rằng nếu tôi mở hộp thoại, điều hướng đi (đến một tab khác) và ngược lại, lần sau tôi mở hộp thoại, tôi sẽ kết thúc với các phần tử trùng lặp được đặt tên là "someId" trong DOM của tôi. Điều này gây ra vấn đề bởi vì khi tôi cố gắng lấy giá trị từ someID (ví dụ, $ ("# someID"). Val(), tôi sẽ nhận được giá trị từ trường hợp đầu tiên của hộp thoại.)
Có một sửa chữa để đảm bảo rằng các trường được xóa khi hộp thoại đóng? Hoặc tốt hơn, rằng chúng được loại bỏ đúng cách khi điều hướng đến một tab khác?
EDIT
Cuối cùng, tôi tin rằng các vấn đề có liên quan đến việc sử dụng các Tabs và Dialog với nhau. Bất kỳ trường nào tôi có trên biểu mẫu nằm ngoài hộp thoại sẽ bị xóa khỏi DOM khi tôi điều hướng khỏi tab. Tuy nhiên, bất cứ điều gì trong hộp thoại vẫn còn trong DOM sau khi tôi điều hướng đi. Vì vậy, khi tôi điều hướng trở lại, tôi kết thúc với các bản sao.
Sigh, thật buồn khi tôi thấy vấn đề của mình ở dạng không được trả lời trên S. O. Đoán tôi sẽ lấy 10 hộp thoại và về nhà. – umassthrower