Java-script-änderung der Farbe des element by ID

Hallo bin ich versucht zu tun, eine Validierung für ein Formular, an dem ich arbeite, und ich habe eine Funktion geschrieben und verwendet

document.getElementById("span_trav_emer_med_insur").style.backgroundColor ='#FFFFFF';

Ich getestet habe, meine Funktion, um eine Warnmeldung anzeigen, box, für debugging-Zwecke, wenn 'trav_emer_med_insur markiert ist, wird das Meldungsfeld angezeigt wird. Ich habe hier und auf unzähligen anderen Websites, und Sie alle sagen getElementById.style.backgroundColor = 'color'; ist die Methode, das zu erreichen, was ich Suche. Ich verstehe nicht, an dieser Stelle, warum es nicht funktioniert, dann wird alles korrekt angezeigt wird.

Hier ist der Ausgangspunkt, relevante Teil der Funktion:

function validatePlanTypes(form)    {
    var error = "";

        if (form.trav_emer_med_insur.checked)   {
            document.getElementById("span_trav_emer_med_insur").style.backgroundColor = '#FFFFFF';
            if (!form.trav_emer_med_insur_opt1.checked || !form.trav_emer_med_insur_opt2.checked || !form.trav_emer_med_insur_opt3.checked || !form.trav_emer_med_insur_opt4.checked)   {
                form.trav_emer_med_insur_opt1.style.backgroundColor = 'Yellow';
                form.trav_emer_med_insur_opt2.style.backgroundColor = 'Yellow';
                form.trav_emer_med_insur_opt3.style.backgroundColor = 'Yellow';
                form.trav_emer_med_insur_opt4.style.backgroundColor = 'Yellow';
                error = "You must pick a plan-type for Travel Emergency Medical insurance, areas with a problem have been highlighted yellow for you.";
            }

Bin ich nicht, testen Sie die volle Funktion noch nicht, ich versuche nur, zum testen der ersten if-Anweisung zu dieser Zeit, als ich sagte, dass die if-Anweisung funktioniert und alert("bleh"); wird eine Meldung angezeigt, wenn ich überprüfen, dass das Feld

Hier ist der HTML des Formulars, wo ich versuche, ändern Sie die Hintergrundfarbe von einem span-element umgeben die checkbox.

<p><span name="span_trav_emer_med_insur" id="span_trav_emer_med_insur" value="span_trav_emer_med_insur" style=""><input type="checkbox" name="trav_emer_med_insur" id="trav_emer_med_insur_if"  value="trav_emer_med_insur_if" class="form_elements" onClick="if(this.checked){document.getElementById('trav_emer_med_options').style.display='block';}else{document.getElementById('trav_emer_med_options').style.display='none';}"/></span> <!-- Travel Emergency Medical If Box -->

                    <label class="form_elements" name="label_for_trav_emer_med_insur_if" id="label_for_trav_emer_med_insur_if">&nbsp;&nbsp;Travel Emergency Medical Insurance&nbsp;<em>(expands when checked)</em>.</label></p>
                    <p>

                    <div id="trav_emer_med_options" name="trav_emer_med_options" class="questions_hidden">

Habe ich auch schon versucht

form.span_trav_emer_med_insur.style.backgroundColor = '#FFFFFF';

Auch ohne Erfolg, ich bin echt ratlos hier, der code ist identisch zu dem, was ich sehen, alle über das Netz. Mir bitte jemand sagen, was ich bin fehlt.

Dank,
-Sean

Bearbeiten - Nur um sicher zu gehen:

if (form.trav_emer_med_insur.checked)   {
            alert("bleh");

statt

if (form.trav_emer_med_insur.checked)   {
            document.getElementById("span_trav_emer_med_insur").style.backgroundColor = '#FFFFFF';

Funktioniert, so wird die if-Anweisung oder-Funktion ist kein problem.

Komplette Datei hier - mit getelementbyID funktioniert nicht - http://hotfile.com/dl/135598683/93484d4/general2.html

Komplette Datei hier mit alert('bleh') ARBEITEN -
http://hotfile.com/dl/135598746/dc9e14b/general23.html

PHP-code zeigt genau das, was ich versuche zu tun ist (ohne die Seite neu laden):

    //Check if Emergency Medical is selected.
if (isset($_POST['trav_emer_med_insur']))   { 

    //If Emergency Medical is selected, then check to see if an option has been selected
    if (isset($_POST['trav_emer_med_insur_opt1']) or isset($_POST['trav_emer_med_insur_opt2']) or isset($_POST['trav_emer_med_insur_opt3']) or isset($_POST['trav_emer_med_insur_opt4']))   {

    $SQLString = $SQLString . "emer_med, emer_med_opt1, emer_med_opt2, emer_med_opt3, emer_med_opt4";

    }

    //If no option is selected display error message   
    else    {

        ++$ErrCount;
        $Errors[$ErrCount] = "You selected interest in Travel Emergency Medical Insurance  but did  not select a plan-type for it";

    }
}

//Check if All-Inclusive Insurance is selected.
elseif (isset($_POST['allinc_insur']))  {

    //If All-Inclusive Insurance is selected, then check to see if an option has been selected
    if (isset($_POST['allinc_insur_opt1']) or isset($_POST['allinc_insur_opt2']))   {

    }   

    //If no option is selected display error message
    else    {

        ++$ErrCount;
        $Errors[$ErrCount] = "You have selected interest in All-Inclusive Insurance but did not select a plan-type for it";

    }
}

//Check if Cancellation Insurance is selected.
elseif (isset($_POST['cancel_insur']))  {



}

//Check if Visitor Insurance is selected.
elseif (isset($_POST['visitor_insur'])) {

    //If Visitor Insurance is selected, then check to see if country is selected.
    if (isset($_POST['country_select']))    {

    }   

    //If no country selected display error message
    else    {

        ++$ErrCount;
        $Errors[$ErrCount]  = "You have selected interest in Visitor Insurance but have not selected a country";

    }       
}

//If no insurane types selected display error.
else    {

    ++$ErrCount;
    $Errors[$ErrCount] = "You haven not selected interest in any insurance plan types";

}
while ($Count != $Target)   {
    if (checked($QuestionNames[0]) != 1);
    ++$Count;
}
Welchen browser(N) es nicht funktioniert? Auch, was ist der name von form-tag?
jquery ist dein Freund hier
Chrome funktioniert es nicht, gerade getestet in FF und IE, das gleiche Problem. Firebug meldet keine Fehler in der syntax.
Zu GregL - Mein Formular ist mit der Bezeichnung mhc_form, und es wird an meine Funktion mit "onClick" der Schaltfläche Einreichen. Wie bereits in meinem post, eine alert-box NICHT laichen korrekt aus der if-Anweisung, so wird die Funktion-und wenn Sie funktioniert, aber der Stil.Hintergrundfarbe wird nicht mehr reagiert.
Können Sie das problem reproduzieren in einem Testfall? jsfiddle.net oder jsbin.com

InformationsquelleAutor SC1988 | 2011-11-21

Schreibe einen Kommentar