Редактирование текстового значения меток через JavaScript - PullRequest
0 голосов
/ 22 марта 2010

У меня есть простая форма в VB / ASP.NET, содержащая два текстовых поля, я пытаюсь применить некоторую проверку к первому текстовому полю с помощью JavaScript.Это первый раз, когда я пытался это сделать, и у меня возникли некоторые проблемы.

У меня рядом с текстовым полем есть метка с сообщением об ошибке, это свойство видимости меток установлено в False.Я хочу, чтобы видимость надписей стала истинной, если текстовое поле пусто, когда пользователь теряет фокус.

Для этого я использовал опцию onBlur в тегах текстового поля.Затем он вызывает функцию JavaScript и должен установить метку Visible, но это не так.Я проверил, входит ли он в функцию, используя вместо этого предупреждение, и это работает.Кажется, проблема заключается в попытке изменить свойство видимости метки.

Вот часть моего кода:

JavaScript:

function myRegEx(frm) {

    if ( boxUsername.value == "" ) {

        invalidUser.visible = True;
        return false;

    }
}    

Форма:

<asp:TextBox onblur="return myRegEx(this)" id="boxUsername" runat="server" Width="200px"></asp:TextBox>

<asp:Label id="invalidUser" runat="server" visible="False" forecolor="Red" text="* Username must be alphanumeric with no special characters"></asp:Label>

Любая помощь будет блестящей.

Ответы [ 4 ]

0 голосов
/ 22 марта 2010

Почему бы не использовать ASP.NET RequiredFieldValidator, например:

<asp:TextBox onblur="return myRegEx(this)" id="boxUsername" runat="server" Width="200px"></asp:TextBox>
<asp:RequiredFieldValidator ControlToValidate="boxUsername" Display="Dynamic" ErrorMessage="Please enter a value" />

Если это слишком упрощенно, вы можете использовать RegularExpressionValidator:

<asp:TextBox onblur="return myRegEx(this)" id="boxUsername" runat="server" Width="200px"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Please enter alpha numeric characters." ValidationExpression="[my reg ex]" ControlToValidate="boxUsername" Display="Dynamic" />
0 голосов
/ 22 марта 2010

Я предлагаю вам использовать и элемент управления ASP.Net Validation, а именно RequiredFieldValidator .

Это позаботится о ярлыке для вас, а также обеспечит правильную проверку как на стороне клиента (javascript), так и на стороне сервера (vb).

0 голосов
/ 22 марта 2010

Вы используете устаревшую функцию IE-only, которая превращает элементы с идентификаторами в глобальные переменные.
Вы должны позвонить document.getElemenntById вместо.

Кроме того, вам необходимо использовать сгенерированные идентификаторы клиентов ASP.Net.

Наконец, чтобы скрыть элемент, вам нужно использовать CSS; HTML не имеет свойства visible.

Например:

document.getElementById("<%=invalidUser.ClientID %>").style.display = "none";

Однако вместо этого вы должны использовать встроенную функцию проверки ASP.Net.

0 голосов
/ 22 марта 2010

Вот еще один вопрос StackOverflow, на который есть ответ:

Изменение видимости метки ASP.NET с помощью JavaScript

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