Событие 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();");
}
}