SanjiMedlem sedan juli 2009356 inlägg
Hej! Jag har ett formulär som autosparar värden från textboxar när man fyllt i dessa och tabbar vidare. Problemet jag har är att vissa av textboxarna är valfria att fylla i, så därför vill jag kolla efter vilken kontroll som är i fokus för tillfället, och om ingen av kontrollerna är i fokus efter att ett värde har fyllts i, så ska alla värden sparas.
Jag försöker med hjälp av document.activeElement.id att hitta vilken kontroll som är i fokus, och detta fungerar precis som jag vill i internet explorer, men fungerar inte i chrome. Jag har inte testat i Firefox, men som jag fattat det så ska document.activeElement fungera där.
Finns det något annat sätt man kan använda sig av för att hitta vilken kontroll som är i fokus?
Kanske skriva en egen funktion i jquery för att uppnå detta? Jag har dock inga idéer på hur...
Snälla hjälp mig! :)
//Mvh Marcus
voigtann1Medlem sedan juni 20018 810 inlägg
spontant så känns det som du skall använda dig av blur + kolla värdet och om värdet är något så kör du ett AJAX callback?
$(":input:visible").bind("blur",function(e) {
if (this.value !== "") { /* AJAX and stuff...*/
});
Men Chrome och Firefox ge resultat på
document.activeElement
även för Firefox och i Chrome också
men om dina element inte har ett ID så kommer inte document.activeElement.id ge någon info tillbaka.
SanjiMedlem sedan juli 2009356 inlägg
elementen som jag kollar har allihopa ett id.
så här kollar jag det:
if (document.activeElement.id != "ctl00_MainContent_lstDropDown" && document.activeElement.id != "ctl00_MainContent_ctl00_MainContent_txtAddInquiryArticleTerm" && document.activeElement.id != "ctl00_MainContent_txtAddInquiryArticlePcs" && document.activeElement.id != "ctl00_MainContent_txtAddInquiryArticleSuborder")// && document.activeElement.id != "ctl00_MainContent_txtAddInquiryArticleRevnumber"
{
jag kör även en alert som skriver ut document.activeElement.id innan if-satsen, och i IE ser jag det rätta id't, men får en tom ruta i chrome.
jag hittade nyss denna kodsnutt på ett forum, men stängde av misstag ner länken så jag kan tyvärr inte länka tillbaka dit:
function getElementWithFocus()
{
var rtnValue = null;
for(var i=0;i<document.all.length;i++)
{
try
{
if ( document.all.items[i].gotFocus )
{
// assume that element has name and/or id.
alert( document.all.item[i].name + ' has focus!');
rtnValue = document.all.items[i];
break;
}
}
catch (ex)
{
// catch exception for when the element doesn't support the gotFocus attribute.
}
return rtnValue;
}
}
men då jag kör denna händer inte ett jota heller.
jag ska se om jag kan lösa det på sättet du skrev, men har fortfarande svårt att greppa exakt hur jquery fungerar så det kommer nog ta en stund ^^
voigtann1Medlem sedan juni 20018 810 inlägg
jag kör även en alert som skriver ut document.activeElement.id innan if-satsen, och i IE ser jag det rätta id't, men får en tom ruta i chrome.
Jag få ut element när jag har en focus på element och kör det jag kör 12.0.742.100 (PC).
Och kod exemplet du postade känns rätt så dålig då man måste se om webbläsaren har stöd för det eller inte och inte berätta vilket stöd den har.
@ndersMedlem sedan juni 200026 914 inlägg
voigtann1 skrev:
Och kod exemplet du postade känns rätt så dålig då man måste se om webbläsaren har stöd för det eller inte och inte berätta vilket stöd den har.
Och dessutom: om document.all överhuvudtaget finns med i ett kodexempel finns det alltid bättre kodexempel.
SanjiMedlem sedan juli 2009356 inlägg
voigtann1 skrev:
Jag få ut element när jag har en focus på element och kör det jag kör 12.0.742.100 (PC).
Och kod exemplet du postade känns rätt så dålig då man måste se om webbläsaren har stöd för det eller inte och inte berätta vilket stöd den har.
jag kör också 12.0.742.100 på min PC... jag ska gå igenom allt igen och se om jag kan hitta något fel... återkommer lite senare så får vi se om jag lyckats med din lösning ^^