text v textboxu   zodpovězená otázka

ASP.NET WebForms

Zdravim,

mam hloupy dotazek, o kterem si myslim,ze by mi mohl lehce nejaky zkusenejsi programator vypomoci s resenim...

delam stranku s nazvem objednavka (formular) v nem mam nejake textboxy,radiobuttony atd...a take poznamku na konci formulare, tato poznamka je typu text box.

jeji kod je :

<textarea name="Poznámka" cols="70" rows="9" class="form-body" id="Poznámka">Zde napiště Váš dotaz ....</textarea>

v tomto textboxu (poznamce)se nachazi vyhozi text "Zde napiště Váš dotaz ...." a ja potrebuji abych v momente,kdyz zacnu psat poznamku do tohoto pole se tento text smazal.Nyni to funguje tak,ze tento text musim oznacit pote smazat a az teprve pak psat, ja bych si to tedy predstavoval asi nejak tak, ze kdybych chtel zapsat poznamku, tak bych zacal psat text a ten vychozi text poznamky by se smazal sam,aniz bych jej musel oznacit a smazat rucne....

dekuji moc za radu. Daniel

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je to jednoduché. Použijete JavaScript.

<asp:TextBox ID="TextBox1" runat="server" Text='blablablabla' onFocus="var object = document.getElementById('TextBox1').value = '';" TextMode="MultiLine"></asp:TextBox>

A přimlouval bych se za to, aby jste pro text použival pole Text a nepsal to mezi tagy.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

toto mi bohuzel nefunguje, stale si musim ten text oznacit a smazat :(

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Je nutné se podívat do zdrojového kódu stránky, jaké se tam zobrazuje ID toho text boxu a toto ID dosadit do toho JS kódu. Taky by bylo vhodné otestovat hned na počátku JS kódu, jestli je hodnota v text boxu pořád rovna té původní (nějaký to "sem vepište zprávu"), pokud ne tak určitě text nemazat. To by z Vás jinak uživatelé měli radost :-)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

kdyz dam v prohlizeci zobrazit zdrojovy kod tak tam jest toto:

 <textarea name="ctl00$ContentPlaceHolder1$Poznamka" rows="9" cols="20" id="ctl00_ContentPlaceHolder1_Poznamka" cols="70" class="form-body" onFocus="var object = document.getElementById('Poznamka').value = '';">bla</textarea>

nahlásit spamnahlásit spam 0 odpovědětodpovědět

ID zjistíte přes TextBox1.ClientID na straně ASP.NET a dynamicky ho doplníte do toho skriptu v codebehingu.

Ale v tomto případě můžete v tom javascriptu místo document.getElementById("TextBox1") dát this, protože se skript spouští na stejném elementu, s nímž se manipuluje.

A vůbec nejlepší je stáhnout si AjaxControlToolkit a na TextBox přidat WatermarkExtender, postará se i o to, aby byl výchozí text šedý a méně výrazný.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

asi jsem natvrdly, ale stale to nechapu...

tento usek "document.getElementById("TextBox1")" jsem nahradil timto "this" a nyni to vypada takto:

<asp:TextBox ID="Poznamka" runat="server" class="form-body" Text='blablablabla' onFocus="var object = document.this.value = '';" TextMode="MultiLine"></asp:TextBox>

a presto to nefunguje...mno nevim...

jedine mi ted zbyva zkusit ten ajax ale s tim jsem nikdy nemel nic co docineni,takze uvidim...

kazdopadne diky mam alespon co zkouset :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

mno tkze, stahl jsem si ten ajaxtoolbox,pote jej nainstaloval (snad uspesne),spustil,vytvoril jsem novy text box, na nej pres design natahl ajaxwatermarkextender ulozil a spustil na localhostu, ale nefuguje mi to,takze jsem opet neco podelal...ale co?

            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:TextBoxWatermarkExtender ID="TextBox1_TextBoxWatermarkExtender" 
                runat="server" TargetControlID="TextBox1">
            </asp:TextBoxWatermarkExtender>

v prohlizeci to vypisuje toto:

Exception Details: System.InvalidOperationException: The control with ID 'TextBox1_TextBoxWatermarkExtender' requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přidejte do stránky komponentu ScriptManager. Ideálně do MasterPage, hlavně hned nahoru dovnitř elementu form.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

toto jsem udelal,ale zacalo mi to vypisovat jinou chybu :

AjaxControlToolkit.TextBoxWatermarkExtender missing required WatermarkText property value for TextBox1_TextBoxWatermarkExtender.

Parameter name: WatermarkText

na googlu jsem nalezl toto :

http://forums.asp.net/p/1224810/2205688....

ale neni tam reseni ktere by to vyresilo..

...ja se z toho jednou zblaznim, same problemy...ach

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkuste si příště zkusit chybovou hlášku přeložit kvůli slovníku a nefňukejte tady, že s tím máte smaé problémy proboha.

Chybí vám u komonenty TextBoxWatemarkExtender nastavená vlastnost WatermarkText, což je text, který se má zobrazit v TextBoxu, když tam není nic.

<asp:TextBoxWatermarkExtender ID="TextBox1_TextBoxWatermarkExtender" 
                runat="server" TargetControlID="TextBox1"
WatermarkText="Zadejte text">
            </asp:TextBoxWatermarkExtender>

Bez znalosti angličtiny nemá smysl začínat programovat, je to jako kdybyste chtěl jezdit autem a neznal dopravní značky.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback