Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Клиентский javascript на контрол


Автор: Rockie 27.6.2013, 16:31
Добрый день!

Мне нужно выполнить яваскрипт при активации текстбокса. Пробую по-разному регистрировать скрипт, но отрабатывает он нормально только в IE. Хром и Pale Moon(вариант Firefox) не делают нифига. я подозреваю что эти браузеры по-разному подключают/подгружают яваскрипт, либо мой код не кроссбраузерный.. Посмотрите пожалуйста кто занимается что я не так делаю
Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Windows.Forms;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ShowPictureWebApp
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // при активации текстбокса сказать Мяу. В IE всё работает
            try
            {
                tboxName.Attributes.Add("onactivate", "sayMiu();");
            }
            catch(Exception ex)
            {
                   //..
            }
        }
    }
}


SomeScripts.js
Код

// say Miu
function sayMiu(){alert("Miu!");}


Код

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="ShowPictureWebApp._Default" %>
<%@ Register TagPrefix="recaptcha" Namespace="Recaptcha" Assembly="Recaptcha" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script src="Scripts/SomeScripts.js" language="javascript" type="text/javascript"></script>
<title></title>
</head>

<body>
<form id="form1" runat="server">

<asp:TextBox ID="tboxName" runat="server" Width="190px" CssClass="NameBackground"></asp:TextBox>

</form>
</body>
</html>


upd: В свойтсвах текстбокса CssClass="NameBackground", так как вообще мне вся эта кухня нужна чтобы подменять фоновую картинку в текстбоксе. Сначала там текст примера что вводить, а при клике я заменяю её прозрачной или белой.. Это на всякий случай, хотя думаю это не имеет прямого отношения к делу.

Автор: Rockie 27.6.2013, 18:22
Решил. Заменил onactivate на onfocus

Код

tboxName.Attributes.Add("onfocus", /* js function */);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)