Voeg dynamische elementen toe met jQuery als ik element uit lijst kies

Ik heb een lijst met elementen en als ik een element uit de lijst kies, veranderen de waarden van de onderstaande code.

    <div class="drop-down-cont zi-5 fleft">
          <input class="dd-input" id="packaging_item_packaging_name" name="packaging_item[packaging_name]" title="Packaging Type" type="hidden" value="PX">
          Pallet
          <div class="drop-down pic" style="visibility: visible; ">
            <div class="blue-tarr"></div>
            <div class="drop-down-list-cont w400">
              <div class="drop-down-list first pt-cases w100p" id="cases_results_">


</div>
              <div class="pic-cont h100p">Package Image </div>
            </div>
            <div class="remark">
A platform used to hold or transport unit loads. 

</div>
            Apply
          </div>
        </div>

<table id="pallet_table" style="display:none;">
    <tbody>
      <tr>
        <td>
          stacking factor:
        </td>
        <td>
          <input class="w44" id="packaging_item_stacking_factor" name="packaging_item[stacking_factor]" size="30" type="text" value="1">
        </td>
      </tr>
    </tbody>
  </table>

Ik wil tabel tonen als ik 'waarde' kies voor 'PX' en dit script uitvoer,

if ($('.dd-input').attr('value') == 'PX') {
    $('#pallet_table').show();}

maar dit werkt niet dynamisch. Hoe ik dit evenement aankan, verander dan van 'smth' naar 'PX'

0
@ MikhailAleksandrovi4: Dit doet ertoe, u bent niet specifiek genoeg. Als u de gebeurtenis aan de vervolgkeuzelijst kunt binden, zou het op deze manier eenvoudiger en schoner zijn.
toegevoegd de auteur Tadeck, de bron
Ik kan je lijst niet zien in de html die je hebt geplakt. Welke gebeurtenis wilt u activeren?
toegevoegd de auteur Guilherme David da Costa, de bron
Dit doet er niet toe. Het is een vervolgkeuzelijst van een ander bestand, maar als ik een element kies, is deze veranderingswaarde in <input class = "dd-input" name = "packaging_item [packaging_name]" title = "Packaging Type" type = "hidden" value = " smth ">
toegevoegd de auteur Mikhail Grishko, de bron

1 antwoord

Dit zou je probleem moeten oplossen (zie this jsfiddle ):

jQuery('.dd-input').bind('change', function(){
    if (jQuery(this).val() == 'PX'){
       //do here whatever you need
        $('#pallet_table').show();
    }
});

Ik zie echter niet hoe u wilt dat de gebruiker de waarde van dit veld verandert (in uw code is het veld verborgen). Als dit via een ander script wordt gedaan, is de huidige aanpak misschien niet de beste en moet u expliciet een functie noemen in plaats van het te doen wanneer de waarde wordt gewijzigd?

0
toegevoegd
@ MikhailAleksandrovi4: Er zijn veel mogelijkheden om code uit te voeren voordat iets wordt ingediend - je kunt submit -gebeurtenis onderscheppen, je kunt zelfs prefab AJAX-oproepen . Echt waar: " dit kan niet worden gedaan " is meestal een gevolg van het onderschatten van mogelijke oplossingen.
toegevoegd de auteur Tadeck, de bron
Deze code werkt prima jsfiddle.net/Uur9A/16 , maar in mijn context doet deze oplossing niet t werk. Ik heb een formulier, waar dit evenement moet worden uitgevoerd voordat je het indient
toegevoegd de auteur Mikhail Grishko, de bron
ja ik kon de vorige submit gebruiken, waar ik uit de lijst met elementen kies
toegevoegd de auteur Mikhail Grishko, de bron