Как мне остановить браузер от добавления autocomplete=off в текстовое поле asp
У меня есть автозавершение ajax с настраиваемыми веб-сервисами, заполняющими список в текстовом поле на странице.aspx. IE работает нормально, но при использовании Chrome или Firefox к этому текстовому полю добавляется атрибут autocomplete = off, который в точности противоположен тому, что мне нужно. Я попытался изменить z-index в классе css, добавить autocomplete=on inline в текстовое поле, удалить атрибут автозаполнения для фокуса с помощью JavaScript, удалить атрибут автозаполнения при загрузке страницы и установить атрибут автозаполнения верхнего элемента. Уровень Мастер страницы, чтобы вкл. На странице есть jquery для поддержки функции перетаскивания, но я не смог найти, вызывает ли это добавление атрибута. У меня нет идей, и я мог бы использовать некоторые рекомендации.
РЕДАКТИРОВАТЬ: забыл упомянуть, что, когда я помещаю текстовое поле и autocompleteextender на тестовую страницу в том же приложении, используя те же веб-сервисы, он работает нормально. Когда я проверяю элемент, он все еще имеет атрибут autocomplete = off, но, похоже, он не влияет на функциональность. Спасибо!
aspx page code:
<ajax:AutoCompleteExtender ID="acDisciplines" runat="server" TargetControlID="txtDisciplinesAuto" ServiceMethod="GetDisciplinesAuto" MinimumPrefixLength="1" CompletionInterval="100" EnableCaching="true" FirstRowSelected="true" CompletionListCssClass="autoCompleteExtenderList" CompletionSetCount="20"
>
</ajax:AutoCompleteExtender>
<asp:TextBox ID="txtDisciplinesAuto" runat="server" EnableViewState="false"></asp:TextBox>
css:
.autoCompleteExtenderList
{
z-index: 10009;
border: 1px solid black;
width: auto !important;
padding-right: 10px;
padding-left: 10px;
background-color: White;
max-height: 400px !important;
position: absolute;
x-overflow:hidden;
y-overflow:scroll;
}
jquery/javascript just in case:
<script type="text/javascript">
$(init);
function init() {
$('[id$=divMoveHelp]').hide();
$('[id$=divHelp]').hide();
$('[id$=lnkHelp]').click(helpLinkClicked);
$('.dragClass').draggable({
containment: 'document',
revert: 'invalid'
});
$('.dropHeader').droppable({
activeClass: 'classMoveActive',
hoverClass: 'classMoveHover',
drop: handleDropEvent,
activate: handleDragActive,
deactivate: handleDragStop
});
}
function helpLinkClicked() {
if ($('[id$=divHelp]').css('display') == 'none') {
$('[id$=divHelp]').show();
}
else {
$('[id$=divHelp]').hide();
}
}
function handleDragActive(event, ui) {
$('[id$=divMoveHelp]').show();
}
function handleDragStop(event, ui) {
$('[id$=divMoveHelp]').hide();
}
function handleDropEvent(event, ui) {
var draggable = ui.draggable;
var classText = getClassText(draggable);
var termText = $(this).text().trim();
var yearRowID = $(this).parents('[id$=tblYearGrid]').find('[id$=lblYearRowIDInner]').html().trim();
var edPlanID = $(this).parents('[id$=tblYearGrid]').find('[id$=lblEdPlanIDInner]').html().trim();
var classID = $(draggable).parent().children('.classID').text().trim();
var titleText = $(draggable).children('a').attr('title').trim();
var originTerm = $(draggable).children('a').attr('id');
if (originTerm.indexOf('Fall') >= 0) {
originTerm = 'Fall';
}
else if (originTerm.indexOf('Winter') >= 0) {
originTerm = 'Winter';
}
else if (originTerm.indexOf('Spring') >= 0) {
originTerm = 'Spring';
}
else if (originTerm.indexOf('Summer') >= 0) {
originTerm = 'Summer';
}
$(draggable).hide();
$('[id$=txtClass]').val(classText);
$('[id$=txtTerm]').val(termText);
$('[id$=txtYearRowID]').val(yearRowID);
$('[id$=txtClassID]').val(classID);
$('[id$=txtClassTitle]').val(titleText);
$('[id$=txtOriginTerm]').val(originTerm);
$('[id$=txtEdPlanID]').val(edPlanID);
$('[id$=btnMoveClass]').click();
}
function getClassText(obj) {
var val = $(obj).text().trim();
return val;
}
//override the autocomplete for chrome and firefox
var autocompleteTB;
// After the document has loaded, manipulate DOM elements.
window.addEventListener('load', function () {
// Get the username field element.
autocompleteTB = $get('<%= txtDisciplinesAuto.ClientID %>');
// Listen to the 'focus' event on the input element.
autocompleteTB.addEventListener('focus', function () {
// Remove the autocomplete attribute when the textbox comes in focus
autocompleteTB.setAttribute('autocomplete', 'on');
}, false);
}, false);
</script>