Αλλαγή της τιμής ενός Textbox μέσω επιλογής σε Combo box

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
it0466
Δημοσιεύσεις: 18
Εγγραφή: 15 Δεκ 2005 19:49

Αλλαγή της τιμής ενός Textbox μέσω επιλογής σε Combo box

Δημοσίευση από it0466 » 11 Αύγ 2008 17:41

Δουλεύω με το FacileForms & γράφω scripts σε Javascript. Στη φόρμα μου έχω ένα combo box (ο μαθητής επιλέγει την κατεύθυνση στην οποία ανήκει)και ένα text box("γεμίζει" με το αντίστοιχο μάθημα βαρύτητας της κατεύθυνσης). Aνάλογα με την τιμή που θα επιλέξει ο χρήστης στο Combo box θα μπαίνει μια συγκεκριμένη τιμή στο textbox της φόρμας. Σας παραθέτω τον κώδικα της εφαρμογής μου με σκοπό να με βοηθήσετε.

Combobox
Name:ass_slstdirections
Options:
1;Επιλέξτε κατεύθυνση;0
0;Θετική;1
0;Θεωρητική;2
0;Τεχνολογική(Πληρ. & Υπηρ.);3
0;Τεχνολογική(Τεχν. & Παρ.);4
Scripts
Action Script:

Κώδικας: Επιλογή όλων

 function ff_ass_slstdirections_action(element, action)
{
     //var oTextbox1 = document.getElementById("ff_elem218");
     //var oForm = document.forms[0];
     //var oTextbox1 = oForm.elements["ass_txtmath1"];
    if ((action == "change") && (element.selectedIndex == 1)){ 
          alert("Θετική");
         //oTextbox1="Mathematica";
         //ass_txtmath1=oTextbox1;
         //ass_txtmath1="Mathematica";
         //ff_nm_ass_txtmath1.value="Mathimatica";
         //oTextbox1.value="Mathimatica";
         //document.aform.ass_txtmath1.value="Μαθηματικά";
         //ass_txtmath1.value="Mαθηματικά";
         //moria.elements[10].value = "paok";
     } else if ((action == "change") && (element.selectedIndex == 2)){
             alert("Θεωρητική");
     } else if ((action == "change") && (element.selectedIndex == 3)){
             alert("Τεχνολογική (Πληρ. & Υπηρ.)");
     } else {
             alert("Τεχνολογική (Τεχν. & Παρ.)");
     }
} // ff_ass_slstdirections_action
Textbox
Name:ass_txtmath1

Όπως βλέπετε το μόνο που μου κάνει ο παραπάνω κώδικας είναι να μου εμφανίζει ένα μήνυμα Θετική, Θεωρητική, κτλ. ανάλογα με την αλλαγή επιλογής που κάνω στο combo box μου. Το πρόβλημα μου είναι ότι δεν μπορώ ταυτόχρονα να αλλάξω και την τιμή του Textbox μου. Τα σχόλια που βλέπετε στον παραπάνω κώδικα είναι ότι έχω κάνει πάρα πολλές προσπάθειες με σκοπό να αναφερθώ στο textbox μου μέσα από το function που υπάρχει στο action change του combobox και δεν τα καταφέρνω! Βάζω π.χ. ass_txtmath1.value="Μαθηματικά" και δεν γίνεται. Τι μπορεί να φταίει; Εν τω μεταξύ δεν υπάρχει και debugging μέσα στο Facile Forms και δεν μπορώ να δω που είναι το λάθος.

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Αλλαγή της τιμής ενός Textbox μέσω επιλογής σε Combo box

Δημοσίευση από dimsis » 12 Αύγ 2008 11:15

Ανέβασε ολόκληρο τον κώδικα μαζί με τη φόρμα και το function...
Αν κατάλαβα καλά ένα από τα δυο που κάνω παρακάτω θέλεις να πετύχεις;

Κώδικας: Επιλογή όλων

<form name="lessons">
  <select name="ass_slstdirections" id="ass_slstdirections" onChange="ff_ass_slstdirections_action&#40;this,'change'&#41;">
    <option value="">Επιλέξτε κατεύθυνση</option>
    <option value="1">Θετική</option>
    <option value="2">Θεωρητική</option>
    <option value="3">Τεχνολογική&#40;Πληρ. & Υπηρ.&#41;</option>
    <option value="4">Τεχνολογική&#40;Τεχν. & Παρ.&#41;</option>
  </select>
  <input type="text" name="ass_txtmath1" id="ass_txtmath1" />
  <input type="text" name="ass_txtmath2" id="ass_txtmath2" />
</form>
<script>
function ff_ass_slstdirections_action&#40;element, action&#41; 
&#123; 
    if &#40;action == "change"&#41; 
		&#123; 
		 document.getElementById&#40;"ass_txtmath1"&#41;.value=element.value;
		 document.getElementById&#40;"ass_txtmath2"&#41;.value=element.options&#91;element.selectedIndex&#93;.text;
     	&#125; 
&#125; 
</script>
Δηλαδή να πάρεις είτε την τιμή (value), είτε το κείμενο (text) του combo;
Το παραπάνω σου το κάνει...

it0466
Δημοσιεύσεις: 18
Εγγραφή: 15 Δεκ 2005 19:49

Αλλαγή της τιμής ενός Textbox μέσω επιλογής σε Combo box

Δημοσίευση από it0466 » 12 Αύγ 2008 12:51

Eυχαριστώ dimsis. Αυτό που θέλω να κάνω είναι με το που επιλέγει μία από τις κατευθύνσεις ο χρήστης μέσα στο combo box να γεμίζουν τα textboxes που έχω με τα αντίστοιχα μαθήματα της κατεύθυνσης. Π.χ. αν επιλέξει Θετική κατεύθυνση ο χρήστης θα εμφανίζονται ως τιμές μέσα στα textboxes τα μαθήματα Μαθηματικά, Βιολογία, Χημεία, Φυσική. Όντως με την εντολή

Κώδικας: Επιλογή όλων

document.getElementById&#40;"ass_txtmath1"&#41;.value=element.value;
το πρόβλημα λύθηκε. Αυτό που δεν έκανα σωστά ήταν ότι ενώ το όνομα του textbox μου είναι ass_txtmath1 το id του είναι ff_elem218. Το id δεν φαίνεται πουθενά μέσα στο facile forms και για να το βρω αναγκάστηκα να κάνω από το Mozilla Firefox View Page Source τη φόρμα μου και να το αναζητήσω.

Σου παραθέτω και τον κώδικα:

Κώδικας: Επιλογή όλων

<html>
	<head>
		<title>Sample Form</title>
                <script>
                function ff_ass_slstdirections_action&#40;element, action&#41;
                &#123;
                     if &#40;&#40;action == "change"&#41; && &#40;element.selectedIndex == 1&#41;&#41;
                     &#123;
                        document.getElementById&#40;"ass_txtmath1"&#41;.value="Mαθηματικά";
                        document.getElementById&#40;"ass_txtmath2"&#41;.value="Φυσική";                        
                        document.getElementById&#40;"ass_txtmath3"&#41;.value="Χημεία";
                        document.getElementById&#40;"ass_txtmath4"&#41;.value="Βιολογία";
                     &#125; else if &#40;&#40;action == "change"&#41; && &#40;element.selectedIndex == 2&#41;&#41;&#123;
                        document.getElementById&#40;"ass_txtmath1"&#41;.value="Aρχαία Ελληνικά";
                        document.getElementById&#40;"ass_txtmath2"&#41;.value="Ιστορία";                        
                        document.getElementById&#40;"ass_txtmath3"&#41;.value="Νεοελληνική Λογοτεχνία";
                        document.getElementById&#40;"ass_txtmath4"&#41;.value="Λατινικά";                           
                     &#125; else if &#40;&#40;action == "change"&#41; && &#40;element.selectedIndex == 3&#41;&#41;&#123;
                        document.getElementById&#40;"ass_txtmath1"&#41;.value="Mαθηματικά";
                        document.getElementById&#40;"ass_txtmath2"&#41;.value="Φυσική";                        
                        document.getElementById&#40;"ass_txtmath3"&#41;.value="Ανάπτυξη εφαρμογών";
                        document.getElementById&#40;"ass_txtmath4"&#41;.value="Διοίκηση Επιχειρήσεων";                             
                     &#125; else &#123;
                        document.getElementById&#40;"ass_txtmath1"&#41;.value="Μαθηματικά";
                        document.getElementById&#40;"ass_txtmath2"&#41;.value="Φυσική";                        
                        document.getElementById&#40;"ass_txtmath3"&#41;.value="Χημεία - Βιοχημεία";
                        document.getElementById&#40;"ass_txtmath4"&#41;.value="Ηλεκτρολογία";                           
                     &#125;
                      
                &#125;
                </script>
	</head>
  <body>
      <form name="lessons">
      <select name="ass_slstdirections" id="ass_slstdirections" onChange="ff_ass_slstdirections_action&#40;this,'change'&#41;">
      <option value="">Επιλέξτε κατεύθυνση</option>
      <option value="1">Θετική</option>
      <option value="2">Θεωρητική</option>
      <option value="3">Τεχνολογική&#40;Πληρ. & Υπηρ.&#41;</option>
      <option value="4">Τεχνολογική&#40;Τεχν. & Παρ.&#41;</option>
      </select>
      <input type="text" name="ass_txtmath1" id="ass_txtmath1" />
      <input type="text" name="ass_txtmath2" id="ass_txtmath2" />
      <input type="text" name="ass_txtmath3" id="ass_txtmath3" />
      <input type="text" name="ass_txtmath4" id="ass_txtmath4" /> 
    </form>
  </body>
</html
Γνωρίζεις κάποιον άλλο τρόπο με τον οποίο θα μπορούσα να αναφερθώ στα αντικείμενα textboxes και να καθορίζω την τιμή τους εκτός από αυτούς που ειπώθηκαν πιο πάνω και ποια είναι η διαφορά μεταξύ name και id ενός αντικειμένου;

Άβαταρ μέλους
dimsis
Reporter
Δημοσιεύσεις: 7994
Εγγραφή: 25 Ιούλ 2001 03:00

Αλλαγή της τιμής ενός Textbox μέσω επιλογής σε Combo box

Δημοσίευση από dimsis » 12 Αύγ 2008 13:13

Μπορείς πάντα να αναφέρεσε σε αντικείμενα μιας φόρμας και ως εξής:
document.formName.FormField.value
ή
document.formname['formfield'].value

στο παράδειγμα μας:
document.lessons.ass_txtmath1.value=element.value; αντί του: document.getElementById("ass_txtmath1").value=element.value;
document.lessons['ass_txtmath2'].value=element.options[element.selectedIndex].text; αντί του document.getElementById("ass_txtmath2").value=element.options[element.selectedIndex].text;

it0466
Δημοσιεύσεις: 18
Εγγραφή: 15 Δεκ 2005 19:49

Αλλαγή της τιμής ενός Textbox μέσω επιλογής σε Combo box

Δημοσίευση από it0466 » 12 Αύγ 2008 13:45

Σ'ευχαριστώ.

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης