Событие onblur в текстовом поле ASP.Net

У меня есть текстовое поле, значения которого мне нужно проверить (если значение текстового поля равно 50, а затем выводить сообщение в lblShowMsg), когда пользователь выходит из текстового поля (событие onBlur). Кажется, я не могу правильно синтаксис.

У меня есть этот код в моем событии pageload:

protected void Page_Load(object sender, EventArgs e)
{
    txtCategory.Attributes.Add("onblur", "validate()"); 

}

Но я не могу получить код javascript правильно. Любые предложения?

Ответы

Ответ 1

В коде позади: (VB.NET)

В событии загрузки страницы

txtAccountNumber.Attributes["onBlur"] = "IsAccNumberValid(" & txtAccountNumber.ClientID & ")";

Где txtAccountNumber - это идентификатор TextBox на странице разметки, и вы передаете ClientID в текстовое поле, потому что JavaScript не является стороной на стороне клиента. А теперь на странице разметки (.aspx) этот javascript находится в разделе заголовка страницы:

<script type="text/javascript">                     
function IsAccNumberValid(txtAccountNumber) {                                             
    if (txtAccountNumber.value.length < 6) {    
                      alert(txtAccountNumber.value);
            }    
        }    
</script>

Ответ 2

Это фактический код в вашей Page_Load? Вам нужно использовать имя элемента управления, а не имя типа для TextBox. Например, вы можете попробовать:

 textBox1.Attributes.Add("onblur", "validate();");

где "textBox1" - это идентификатор, который вы назначили текстовому блоку в своей разметке.

Кроме того, из Javascript очень возможно, что идентификатор текстового поля изменился после его отображения на страницу. Было бы лучше, если бы вы передали элемент управления функции проверки:

function validate(_this)
{
    if (_this.value == "50")
        // then set the ID of the label.  
}

Затем вы должны установить атрибут следующим образом:

textBox1.Attributes.Add("onblur", "validate(this);");

Наконец, я настоятельно рекомендую использовать библиотеку JQuery, если вы что-то делаете в Javascript. Это упростит вашу жизнь в 10 раз.

Ответ 3

Это работает.

Textbox1.Attributes.Add( "ONBLUR", "JavaScript: предупреждение ( 'ааа');" );

Убедитесь, что функция находится в части script страницы.


Моя страница

  

<script type="text/javascript">
    function Validate() {

        alert('validate');

    }

    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="Textbox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
</body>
</html>

код за

public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Textbox1.Attributes.Add("onblur","Validate();");
        }
    }