Hej, Hur ser det ut ifall man väljer "View Source" i IE? Javascriptet: Jag testade att skapa en sida från din html för att försöka återskapa problemet. Men den sidan verkar fungera. Hej, Functionen "__doPostBack" och de gömda input-fälten är någonting som ASP.NET skall genererar åt dig. Jag kopiera dem från en "View Source" på en annan sida (vilken aspx-sida som helst egentligen). Hej igen, Det verkar som om ASP.NET inte skapar det javascriptet ifall det inte finns någon control som har "AutoPostBack" påslaget. Däremot borde det räcka ifall du har kopplat någon "server"-funktion till knappen. Kan det bara problemet? Jo, det är ju en "server button", som söker och visar resultatet i en listbox. Det är egentligen allt som finns på sidan, dvs en textbox, en knapp och en listbox. Hej!Varför funkar inte postback vid Enter-tryckning
Jag vill att om man står i en textbox och trycker enter skall postback göras.
Textboxen heter:
<asp:textbox id="txtSearch" runat="server" Width="216px" CssClass="inputFields"></asp:textbox>
Knappen heter:
<asp:button id="btnFind" runat="server" CssClass="buttons" Text="Find"></asp:button>
Sen har jag ett javascript som fångar Enter:
function catchEnter()
{
if(event.keyCode == 13 && document.activeElement == document.Form1.txtSearch)
{
__doPostBack('<%=btnFind.ClientID%>','');
return false;
}
else
{
return true;
}
}
Detta anropar jag i body-taggen så här:
<code>
<body onkeydown="return catchEnter();">
</code>
Då får jag ett javascripts-fel, "Object Expected", på raden "__doPostBack..."
Jag har flera knappar på sidan, det är därför jag vill göra denna kontroll.
Någon som förstår vad som är fel? Jag har använt koden förr och då har det funkat...
/Jocke
Sv: Varför funkar inte postback vid Enter-tryckning
// MvH BjörneSv:Varför funkar inte postback vid Enter-tryckning
function catchEnter()
{
if(event.keyCode == 13 && document.activeElement == document.Form1.txtSearch)
{
__doPostBack('btnFind','');
return false;
}
else
{
return true;
}
}
Knappen och textboxen:
<code>
<input name="txtSearch" type="text" id="txtSearch" class="inputFields" style="width:216px;" />
<input type="submit" name="btnFind" value="Find" id="btnFind" class="buttons" />
</code>
/Jocke
Sv: Varför funkar inte postback vid Enter-tryckning
Har du testat från någon annan dator (Annan IE, OS JavaEngine etc)
Jag skickar med den sidan som verkade fungear för mig:
// MvH Björne
<code>
<html>
<body onkeydown="return catchEnter();">
<form id="Form1" method="post" action="test2.htm" name="Form1">
<input type="hidden" name="__EVENTTARGET" value="btnFind" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" value="" />
<script language="javascript" type="text/javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform;
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
theform = document.Form1;
}
else {
theform = document.forms["Form1"];
}
theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>
<script>
function catchEnter()
{
if(event.keyCode == 13 && document.activeElement == document.Form1.txtSearch)
{
__doPostBack('btnFind','');
return false;
}
else
{
return true;
}
}
</script>
<input name="txtSearch" type="text" id="txtSearch" class="inputFields" style="width:216px;" />
<input name="txtSearch2" type="text" id="txtSearch2" class="inputFields" style="width:216px;" />
<input type="submit" name="btnFind" value="Find" id="btnFind" class="buttons" />
</form>
</body>
</code>Sv:Varför funkar inte postback vid Enter-tryckning
Tack för din hjälp!
Funktionen "__doPostBack", är det något du skrivit själv, eller generas den? Hittar i alla fall inte den i min "view source"..
Även dessa hittar jag inte:
<input type="hidden" name="__EVENTTARGET" value="btnFind" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" value="" />
Om jag skall ha med en sån i min sida också, har du lust att förklara vad den gör? Vill helst förstå vad jag gör.
Detta behöver bara fungera i IE6 eftersom det är på ett intranät där alla har IE6. Så, nej, jag har inte provat på andra browsers.
Återigen, tack för hjälpen så långt!
/JockeSv: Varför funkar inte postback vid Enter-tryckning
Det skulle kunna bero på:
* någonting konstigt i <@page...>-taggen
* någonting konstigt i <form...>-taggen
* det är inte en aspx-fil
* .NET är inte ordentligt installerat på siten (aspnet_regiis.exe -i)
* någonting annat jag inte tänkt på =)
// MvH BjörneSv:Varför funkar inte postback vid Enter-tryckning
Jag har kollat vad mina sidor genererar och jag hittar inget sånt i View Source.
Testade lite till och det verkar som den funktionen(__doPostBack) mm läggs in efter sidan gjort postback en gång.
Alltså inte första gången man kommer in på sidan.
Stämmer detta? Kan man i så fall göra något åt det?
/JockeSv: Varför funkar inte postback vid Enter-tryckning
// MvH BjörneSv:Varför funkar inte postback vid Enter-tryckning
Men det stämmer, slår jag på autopostback på t ex listboxen funkar det. Det verkar ju lite dumt att det ska vara så...
Jag får väl ha autopostback på min listbox. Inte för att jag egentligen vill, men då funkar det ju i alla fall.
Tack för din hjälp!!
/JockeSv: Varför funkar inte postback vid Enter-tryckning
Har hållt på ett tag med samma problem och snubblat över en lösning som i alla fall fungerar för mig!
Jag har en sökruta och en knapp och i codebehind har jag byggt sökfunktionen på knappens onclick-event.
Problemet är alltså att när jag trycker enter i sökrutan så laddas sidan om men ingen sökfunktion körs.
Detta löste jag mycket enkelt genom att anropa sökknappens onclick-funktion i textboxens TextChaged event!
Private Sub cmdSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSearch.Click
'Sökfunktion
End Sub
Private Sub txtSearch_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged
cmdSearch_Click(sender, e)
End Sub
Ingen annan kod i aspx-filen alltså.