Avatar billede extream Nybegynder
31. juli 2007 - 15:15 Der er 15 kommentarer

asp:textbox skift skriftfarve på onfocus

Hej
Jeg har en <asp:textbox> hvor jeg har en standardværdi "Search" når man sætter focus på tekstboksen skal "Search" slettes og farven skal skifte fra grå til sort.

Hvordan går jeg det. Skal jeg bruge en pageLoadHandler eller?
Avatar billede kalp Novice
31. juli 2007 - 16:08 #1
hvad sige du til, at lave det i javascript?
så du slipper for pageload.
Avatar billede extream Nybegynder
31. juli 2007 - 16:11 #2
Det skal være en pageLoadHandler da jeg skal bruge en asp:textbox.
Avatar billede extream Nybegynder
31. juli 2007 - 16:12 #3
Noget ajax kan måske også løse det.
Avatar billede kalp Novice
31. juli 2007 - 16:15 #4
øhm.. det betyder skam ikke noget at det er en asp:textbox.. når den bliver vist på siden er det en html textbox.

du kan lave det med javascript..
Avatar billede kalp Novice
31. juli 2007 - 16:21 #5
hvis kender til javascript er det eneste du skal lave i pageload på din textbox dette

textbox.Attributes.Add("style","background-color:#FFFFFF");
textbox.Attributes.Add("onFocus","this.style.background-color:#000000");


og du kan ligeledes lave en this.value = '';
så sletter den..
Avatar billede kalp Novice
31. juli 2007 - 23:59 #6
du kæmper vel stadig ikke med at lave det via. ajax?
Avatar billede extream Nybegynder
01. august 2007 - 09:40 #7
Problemet er at value er sprog afhængig og skal tages fra en xml fil. Nu er jeg ikke den store javascript haj men kan man ikke bruge en addListener event?
Avatar billede kalp Novice
01. august 2007 - 09:42 #8
ja du er ikke den store haj for .value har intet med sprog, at gøre;)

hvis du giver feedback på om det andet fungerer så kan jeg hjælpe dig viderer og måske endda give et komplet eksempel på det istedet.
Avatar billede extream Nybegynder
01. august 2007 - 10:06 #9
Sagt på en anden måde den tekst som skal stå i tekst boksen er sprog afhængig dvs. input boksens value.
jeg har forsøgt med
--------------------
function pageLoadHandler()
{
var headline = form.elements[0];
Search.Events.addListener(headline, "focus", toggleHeadline);
}
Search.Events.addListener(window, "load", pageLoadHandler);

<form>
<input type="text" name="headline" id="headline" />
</form>
Avatar billede kalp Novice
01. august 2007 - 10:57 #10
<input type="text" name="headline" id="headline" value="Ich bin kalp" />
<input type="text" name="headline" id="headline" value="Jeg er kalp" />
<input type="text" name="headline" id="headline" value="I am kalp" />

er det den value den snakker om? for så betyder det stadig ikke noget for den funktionalitet jeg snakker :)

tjek dette

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
<script type="text/javascript">
function changeit(something)
{
something.style.background = '#000000';
something.style.color = '#FFFFFF';
something.value = '';
}
</script>
</head>
<body>
  <input id="myboks" style="background-color:#999999" onClick="changeit(this);" type="text" value="heey">
</body>
</html>



er det bare det du vil??
Avatar billede extream Nybegynder
01. august 2007 - 11:19 #11
Noget i den retning bortset fra at min tekstboks skal se sådan her ud.
<asp:textbox runat="server" id="search" />

Altså ingen onClick på min tekstboks.
Avatar billede kalp Novice
01. august 2007 - 12:08 #12
og hvorfor ikke det?

jeg tror ikke asp.net teknologien så du får et færdigt eksempel lidt senere.
Avatar billede kalp Novice
01. august 2007 - 13:06 #13
lav et nyt website..

erstat default.aspx inholdet med dette

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:TextBox ID="TextBox1" runat="server">teeeest</asp:TextBox>
    </div>
    </form>
</body>
</html>



og erstat indholdet af codebehind filen med dette


using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
      TextBox1.Attributes.Add("style","background-color:#999999");
      TextBox1.Attributes.Add("onclick", "changeit(this);");
      string javascript = @"<script type=""text/javascript""> "+
                            "function changeit(something) "+
                            "{ "+
                            "something.style.background = '#000000'; "+
                            "something.style.color = '#FFFFFF'; "+
                            "something.value = ''; "+
                            "} "+
                            "</script>";
      ClientScript.RegisterClientScriptBlock(this.GetType(), "changeit(this);", javascript);
    }
}
Avatar billede thomas_yde Nybegynder
01. august 2007 - 13:47 #14
Jeg blander mig lige.
Husk nu at lade være med, at slette det indhold brugeren har tastet ind. Med det kalp har skrevet, skal du huske, at lave et check på indhold ellers sletter den indholdet efter brugeren har skrevet noget og klikket på tekstboksen igen (måske for at redigere indholdet).
:)
Avatar billede kalp Novice
01. august 2007 - 14:06 #15
thomas_yde >> ja jeg har kun lavet hvad han spørger efter:)
var endda flink, at tilføje en anden tekst farve så man til den nye baggrund i det mindste kan se hvad man også skriver hehehe
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester