Как получить выбранное значение от dropdownlist в asp.net с помощью JavaScript?

Я заполняю страну dropdownlist от базы данных. Я должен выбрать значение из выпадающего списка и присвоить его текстовому полю при помощи JavaScript.

Код:

var textboxId = document.getElementById("txtCountry");
var dropdownListId =document.getElementById("ddlLocation"); 

var e = document.getElementById("ddlLocation"); 
var strUser = e.options[e.selectedIndex].value;

document.getElementById(textboxId).value = strUser;    
document.getElementById(textboxId).focus(); 

путем выполнения этого я получаю ошибку. Какие-либо решения?

5
задан Brian Tompsett - 汤莱恩 6 August 2019 в 09:48
поделиться

3 ответа

Ваш код неправильный, посмотрите, где я внес изменения в тот же код:

var textboxId = document.getElementById("txtCountry");
var e = document.getElementById("ddlLocation"); 
var strUser = e.options[e.selectedIndex].value;
textboxId.value = strUser;    
textboxId.focus(); 

Что вы сделали, так это выбрали текстовое поле и JS вернул вам DOM-элемент этого текстового поля, и вы хотели заполнить его, передав DOM textBox внутри getElementById() функции.

Вот где она сломалась:

document.getElementById(textboxId).value = strUser;

Чтобы использовать метод getElementById(), вы передаете строковое значение id элемента.

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

10
ответ дан 13 December 2019 в 05:34
поделиться

Эти две строки:

document.getElementById(textboxId).value = strUser;    
document.getElementById(textboxId).focus(); 

тоже неверны. Если ваша предыдущая строка действительно сработала:

var textboxId = document.getElementById("txtCountry");

, то то, что вы назвали textboxId , на самом деле будет элементом управления текстовым полем, поэтому вы будете выполнять getElementById , используя элемент управления вместо строкового идентификатора. .

Чтобы следовать тому, что сказал @anthares ; попробуйте следующее:

var textboxId = '<%=txtCountry.ClientID%>';
alert('My textbox id is: '  + textboxId);

и убедитесь, что вы получаете правильный идентификатор текстового поля (помните, что он будет отключен ASP.Net, по крайней мере, убедитесь, что вы ничего не получаете). Затем, когда вы выполняете document.getElementById , вам необходимо проверить результат перед использованием:

var myTextBox = document.getElementById(textboxId);
if (myTextBox !== null) {
    ...now i can access the properties...
}
0
ответ дан 13 December 2019 в 05:34
поделиться

Попробуйте с:

document.getElementById('<%=txtCountry.ClientID%>').value

или

var textBox = document.getElementById('<%=txtCountry.ClientID%>');
textBox.value = strUser;

Это потому, что идентификаторы html-элементов в созданных документах не совпадают с идентификатором, который вы назначили в своем коде. Чтобы получить идентификатор, назначенный элементу управления в html- файле, можно использовать свойство ClientID раскрывающегося списка.

Другая проблема заключается в том, что вы назначаете элемент yourhtml переменной, а затем используете функцию getElementById, которая не является допустимым вызовом.

Это изменилось в ASP.NET 4, которая вот-вот выйдет.

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

2
ответ дан 13 December 2019 в 05:34
поделиться
Другие вопросы по тегам:

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