2017-06-05 9 views
0

Ich habe zwei Optionsfelder und ich möchte eine Warnung anzeigen, wenn einer von ihnen aktiviert ist, scheint es, dass das Problem ist, dass es das Element nicht erkennt, weil Die Warnung wird nicht angezeigt!Kann RadioButton mit JQuery nicht verwenden - Warnung wird nicht angezeigt

Dieser Code verwendet zu arbeiten, aber es mehr nicht (ich glaube ich die Id eines der Elemente verändert und das ist, was das Problem verursacht)

JS:

/*This function is responsible for for the radio buttons*/ 
$(function() { 
    $(".r1").checkboxradio({ 
     icon: false 
    }); 
}); 
/*This function changes the RecordTypeId according to the BankEmployeeCheckbox*/ 

$("form input:radio").change(function() { 
    if ($(this).val() == "Yes") { 
     document.getElementById("recordType").value = "01220000000FdvyAAC"; 
     alert("Yes"); 

    } else { 
     document.getElementById("recordType").value = "01220000000FffjAAC"; 
     console.log(document.getElementById("recordType").value); 
     alert("No"); 
    } 
}); 

HTML

<form method='post' id='prechatForm' autocomplete="on"> 
     <div id="bankEmployeeYesNoRadioButtonDiv"> 
      <label>{!$Label.Bank_Employee}</label><br/> 
      <label for="radio-1" class="radioLabel">{!$Label.Yes}</label> 
      <input type="radio" name="liveagent.prechat:BankEmployee" id="radio-1" class="r1" value="Yes"></input> 
      <label for="radio-2" class="radioLabel">{!$Label.No}</label> 
      <input type="radio" name="liveagent.prechat:BankEmployee" id="radio-2" class="r1" value="No"></input> 
     </div> 
</form> 

Ergebnis: Wenn ich auf einen Radiobutton klicken nichts passiert, kein Alarm. Keine Konsolenfehler Notizen: Bitte beachten Sie, dass ich Salesforce (Visualforce) -Syntax verwende.

+0

Welche Fehler bekommen Sie? Außerdem sind Eingänge selbstschließend. Es gibt keine ''. Schließlich hat Ihr Beispiel kein '' Element oder Element mit der ID von 'recordType'. Wenn Sie jQuery verwenden, verwenden Sie * jQuery. Dieser '$ (" # recordType "). Val()' not 'document.getElementById (" recordType "). Value" – j08691

+0

versuche, dieses $ ("form input: radio") zu ändern. Change (function() zu diesem $ ("form input [type = 'radio']"). change (function() –

+0

@ j08691, 1) Kein Alert erscheint 2) das ist Salesforce (Visualforce) -Syntax, deshalb muss ich Closing-Elemente verwenden.3) Sorry Dies ist nur ein Ausschnitt nicht den vollständigen Code 4) Ich werde Ihren letzten Vorschlag versuchen – Dante

Antwort

0

ändern diese:

/*This function is responsible for for the radio buttons*/ 
$(function() { 
    $(".r1").checkboxradio({ 
     icon: false 
    }); 
}); 
/*This function changes the RecordTypeId according to the BankEmployeeCheckbox*/ 

$("form input:radio").change(function() { 
    if ($(this).val() == "Yes") { 
     document.getElementById("recordType").value = "01220000000FdvyAAC"; 
     alert("Yes"); 

    } else { 
     document.getElementById("recordType").value = "01220000000FffjAAC"; 
     console.log(document.getElementById("recordType").value); 
     alert("No"); 
    } 
}); 

Um dies:

/*This function is responsible for for the radio buttons*/ 
$(function() { 
    $(".r1").checkboxradio({ 
     icon: false 
    }); 
    /*This function changes the RecordTypeId according to the BankEmployeeCheckbox*/ 

    $("form input:radio").change(function() { 
     if ($(this).val() == "Yes") { 
      document.getElementById("recordType").value = "01220000000FdvyAAC"; 
      alert("Yes"); 

     } else { 
      document.getElementById("recordType").value = "01220000000FffjAAC"; 
      console.log(document.getElementById("recordType").value); 
      alert("No"); 
     } 
    }); 

}); 
+0

Vielen Dank, es funktioniert, aber ich verstehe nicht, warum ich das wickeln muss input: radio selector innerhalb der document.ready-Methode, wenn ich es jedes Mal ausführen muss, wenn die Schaltfläche ausgewählt ist ... – Dante

+0

Nun, ich fand die Antwort hier: https: // stackoverflow.com/questions/9657572/jquery-document-ready Ich hätte warten müssen, dass das DOM geladen wird, bevor ich ein Änderungsereignis hinzufüge. – Dante

0

Ihre jQuery-Selektor ist falsch, so dass dies ändern:

<div id="bankEmployeeYesNoRadioButtonDiv"> 
    <label>{!$Label.Bank_Employee}</label><br/> 
    <label for="radio-1" class="radioLabel">{!$Label.Yes}</label> 
    <input type="radio" name="liveagent.prechat:BankEmployee" id="radio-1" class="r1" value="Yes"></input> 
    <label for="radio-2" class="radioLabel">{!$Label.No}</label> 
    <input type="radio" name="liveagent.prechat:BankEmployee" id="radio-2" class="r1" value="No"></input> 
</div> 

zu:

<form id="bankEmployeeYesNoRadioButtonDiv"> 
    <label>{!$Label.Bank_Employee}</label><br/> 
    <label for="radio-1" class="radioLabel">{!$Label.Yes}</label> 
    <input type="radio" name="liveagent.prechat:BankEmployee" id="radio-1" class="r1" value="Yes"></input> 
    <label for="radio-2" class="radioLabel">{!$Label.No}</label> 
    <input type="radio" name="liveagent.prechat:BankEmployee" id="radio-2" class="r1" value="No"></input> 
</form> 
+0

Hat nicht funktioniert, es handelt sich um die gleiche (keine Konsolenfehler und keine Warnung popping) – Dante

0

Ihr viele Fehler haben ... Sie versuchen, "Form" in Ihre js zu finden, aber Sie haben kein Form-Tag in Ihrem HTML, Sie haben auch kein Tag mit dieser ID: "recordType". Allerdings ist Ihre Warnung gut :)

Das nächste Mal, nur F12 (öffnen Sie Ihre Browser-Konsole) und lesen Sie die Fehler.

EDIT: In JQuery UI

$("document").ready(function() { 
 
    $(".r1").checkboxradio({ 
 
     icon: false 
 
    }); 
 

 
    $(".r1").change(function() { 
 
     if ($(this).val() == "Yes") { 
 
      alert("Yes"); 
 
     } else { 
 
      alert("No"); 
 
     } 
 
    }); 
 
});
<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <meta charset="utf-8" /> 
 
    <link rel="stylesheet" href="style.css" /> 
 
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" /> 
 
    <title>Test</title> 
 
</head> 
 

 
<body> 
 
    <!-- Modal Register --> 
 
    <div id="bankEmployeeYesNoRadioButtonDiv"> 
 
     <label>{!$Label.Bank_Employee}</label><br/> 
 
     <label for="radio-1" class="radioLabel">{!$Label.Yes}</label> 
 
     <input type="radio" name="liveagent.prechat:BankEmployee" id="radio-1" class="r1" value="Yes" /> 
 
     <label for="radio-2" class="radioLabel">{!$Label.No}</label> 
 
     <input type="radio" name="liveagent.prechat:BankEmployee" id="radio-2" class="r1" value="No" /> 
 
    </div> 
 
    <!--/ Modal Register --> 
 
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 
 
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script> 
 
    <script src="./script.js"></script> 
 
</body> 
 

 
</html>

+2

Sie entfernt einen sehr wichtigen Teil meines Skripts, ich brauche die JQuery-Plugin zu arbeiten und Sie kommentieren. – Dante

+0

Der "modifizierte" Code, den Sie zur Verfügung gestellt haben, funktioniert nicht zusammen mit checkboxradio – Dante

+0

Ich bearbeite meine Antwort, ich habe nicht verstanden, dass "checkboxradio" war JQuery UI – Kashkain

Verwandte Themen