Передача идентификаторов клиентов ASP.NET в функцию JavaScript - PullRequest
4 голосов
/ 14 июня 2011

Мне нужно передать идентификатор клиента в функцию Javascript в событии onblur управляющего события ASP.net, например:

OnBlur="javascript:setBackground(this, '<%= txtClientName.ClientID %>')"

Вот моя функция Javascript:

function setBackground(sender, controlID) {
        sender.style.backgroundColor = "#ffffff";
        var nextElement = document.getElementById(controlID);
        if ((nextElement.value == '' || nextElement.value == 'Select') && tab == true) {
            nextElement.style.backgroundColor = "#f7C059"
            tab = false;
        }
    }

Проблема в том, что идентификатор клиента передается буквально как «<% = txtClientName.ClientID%>» вместо фактического значения. Итак, вызов document.getElementById (controlID); не работает.

Как я могу получить действительный идентификатор клиента и передать его моей функции Javascript?

Ответы [ 3 ]

7 голосов
/ 14 июня 2011

Вы можете изменить элемент управления asp.net на стандартный элемент html (т. Е. Без runat = "server")

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input type="text" id="ClientText1" onblur="javascript:alert('<%= TextBox1.ClientID %>')" />

или посмотреть ответ о переполнении стека:

проблема назначения декларативных значений в asp: гиперссылка.ошибка: это не скриптлет.будет выводить как обычный текст

или использовать jquery

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"> </script>

    <script type="text/javascript">
        $(document).ready(function () {
            $("#text2").blur(function(){alert('<%= TextBox1.ClientID %>')});
        });
    </script>
1 голос
/ 29 августа 2013
<asp:TextBox ID="TextBox1" runat="server" onclick="dosomething(this)"></asp:TextBox>

<script>
function dosomething(obj)
{
   var txtObj= document.getElementById(obj.id);
alert (txtObj);
}
</script>

передает этот объект из функции и может получить this.id из JavaScript, который будет ClientID

1 голос
/ 14 июня 2011

Это из-за кода?

Как насчет OnBlur=String.Format("javascript:setBackground(this, '{0}')", txtClientName.ClientID);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...