Jag har en iframe, och i den iframen har jag en sida som anropar följande javascript funktion:
function fieldNotEmpty(id) {
if(document.getElementById(id)) {
var f = document.getElementById(id);
alert(f.value);
if(f.value.length == 0) {
return false;
} else {
return true;
}
} else {
return true;
}
}
Som helt enkelt kollar om fältet är tomt eller inte.
Anropet ser ut så här i iframe-sidan:
function controlFields() {
if(!fieldNotEmpty("FaltID")) { alert('Ett meddelande'); return false; }
}
Sen anropas controlFields() från den sidan som har iframe-taggen i sig.
Detta funkar inte, den visar inte ens ett värde när jag använder document.getElementById('FaltID') direkt i iframe-sidan. Men om jag använder
document.forms[0].FaltID.value, då får jag värde..
Detta sker bara när jag anropar från en sida som har iframe-taggen på sig, inte om sidan inte har en, och fieldNotEmpty används direkt där.
vad kan det bero på?
The_HulkMedlem sedan juni 20031 837 inlägg kan du visa lite mer HTML-kod? är du säker på att du satt ett id på html-taggen och inte bara ett name?
Så här ser kodsnutten ut för inputfältet:
<input type="text" value="<%=kostnadsstalle%>" id="kostnadsstalle" NAME="kostnadsstalle" size="15" MAXLENGTH="20" CLASS="input1">
Saken är den att den via getElementById('kostnadsstalle') hittar själva elementet, för jag får inget fel där, den bara vill inte ge något värde.. även fast den innehåller ett värde, för med document.forms[0].kostnadsstalle.value får jag värdet.
gjorde ett test
iframe.asp
function controlFields() {
test();
}
function test() {
alert(document.getElementById('kostnadsstalle').value); // alert 1
alert(document.forms[0].('kostnadsstalle').value); // alert 2
// return true
}
...
<input type="text" value="<%=kostnadsstalle%>" id="kostnadsstalle" NAME="kostnadsstalle" size="15" MAXLENGTH="20" CLASS="input1">
Sedan från parent.asp
function preview() {
var iframen = document.iFrameBeslut;
if (controlFields() && iframen.controlFields())
document.forms[0].submit();
}
}
function controlFields() {
// kontroller för parent.asp
}
Efter lite kapning av koden.. alert 1, visar inget värde, men hittar objektet, alert två visar värdet.
obs! hela koden är gjord för IE, inte nån av de övriga webläsarna! iom att det är en produkt för intranät.