2016-03-24 2 views
1

J'ai trouvé ce code COLDFUSION pour une liste de sélection afin de vérifier automatiquement une liste pour une valeur et, si ce n'est pas le cas, définir "par défaut" pour sélectionner. Seulement ça ne marche pas pour moi. Il entre dans le cfif, et le script est mis dans la page, mais il ne trouve jamais le JQUERY SELECTOR par défaut pour le marquer comme SELECTED.Comment trouver cette option de sélection en utilisant jquery

#igShutdownTimer option[default="default"] ne marque pas value="60" comme sélectionné lorsque la page s'exécute comme je le pensais.

<div class="col-md-12"> 
    <label for="igShutdownTimer">Ignition ShutDown Timer:</label> 
    <cfset pos = listfind(inputList,"1_uint ")> 
    <cfif not pos> 
     <script> 
      $('##igShutdownTimer option[default="default"]').attr('selected','selected'); 
     </script> 
    </cfif> 
    <select form="configDetail" id="igShutdownTimer" name="1_uint" class="form-control" changeName="Ignition ShutDown Timer"> 
     <option value="0" <cfif pos and getParams.value[pos] is "0">selected</cfif>>0 Minutes</option> 
     <option value="10" <cfif pos and getParams.value[pos] is "10">selected</cfif>>10 Minutes</option> 
     <option value="20" <cfif pos and getParams.value[pos] is "20">selected</cfif>>20 minutes</option> 
     <option value="30" <cfif pos and getParams.value[pos] is "30">selected</cfif>>30 Minutes</option> 
     <option value="40" <cfif pos and getParams.value[pos] is "40">selected</cfif>>40 Minutes</option> 
     <option value="50" <cfif pos and getParams.value[pos] is "50">selected</cfif>>50 Minutes</option> 
     <option value="60" <cfif pos and getParams.value[pos] is "60">selected</cfif> default="default">1 Hour</option> 
     <option value="120" <cfif pos and getParams.value[pos] is "120">selected</cfif>>2 hours</option> 
     <option value="240" <cfif pos and getParams.value[pos] is "240">selected</cfif>>4 Hours</option> 
     <option value="480" <cfif pos and getParams.value[pos] is "480">selected</cfif>>8 Hours</option> 
     <option value="720" <cfif pos and getParams.value[pos] is "720">selected</cfif>>12 hours</option> 
     <option value="1440" <cfif pos and getParams.value[pos] is "1440">selected</cfif>>24 Hours</option> 
     <option value="4294967295" <cfif pos and getParams.value[pos] is "4294967295">selected</cfif>>Unlimited</option> 
    </select> 
</div> 

C'est ce qui est imprimé à la source et que vous pouvez le voir sélectionné ne se présente pas pour défaut. .

<script> 
    $('#igShutdownTimer option[default="default"]').attr('selected','selected'); 
</script> 
<select form="configDetail" id="igShutdownTimer" name="9X26889E92489D" class="form-control" changeName="Ignition ShutDown Timer"> 
    <option value="0" >0 Minutes</option> 
    <option value="10" >10 Minutes</option> 
    <option value="20" >20 minutes</option> 
    <option value="30" >30 Minutes</option> 
    <option value="40" >40 Minutes</option> 
    <option value="50" >50 Minutes</option> 
    <option value="60" default="default">1 Hour</option> 
    <option value="120" >2 hours</option> 
    <option value="240" >4 Hours</option> 
    <option value="480" >8 Hours</option> 
    <option value="720" >12 hours</option> 
    <option value="1440" >24 Hours</option> 
    <option value="4294967295" >Unlimited</option> 
</select> 

quelqu'un peut me aider avec le sélecteur nécessaire pour trouver <option value="60" default="default">1 Hour</option> dans cette liste et toute autre liste qui default="default" pourrait apparaître dans


Code de travail Après la réponse de Rory:

<div class="col-md-12"> 
    <label for="igShutdownTimer">Ignition ShutDown Timer:</label> 
    <cfset pos = listfind(inputList,"1_uint ")> 
    <select form="configDetail" id="igShutdownTimer" name="#daCFC.enc('1_uint')#" class="form-control" changeName="Ignition ShutDown Timer"> 
     <option value="0" <cfif pos and getParams.value[pos] is "0">selected</cfif>>0 Minutes</option> 
     <option value="10" <cfif pos and getParams.value[pos] is "10">selected</cfif>>10 Minutes</option> 
     <option value="20" <cfif pos and getParams.value[pos] is "20">selected</cfif>>20 minutes</option> 
     <option value="30" <cfif pos and getParams.value[pos] is "30">selected</cfif>>30 Minutes</option> 
     <option value="40" <cfif pos and getParams.value[pos] is "40">selected</cfif>>40 Minutes</option> 
     <option value="50" <cfif pos and getParams.value[pos] is "50">selected</cfif>>50 Minutes</option> 
     <option value="60" class="default" <cfif pos and getParams.value[pos] is "60">selected</cfif>>1 Hour</option> 
     <option value="120" <cfif pos and getParams.value[pos] is "120">selected</cfif>>2 hours</option> 
     <option value="240" <cfif pos and getParams.value[pos] is "240">selected</cfif>>4 Hours</option> 
     <option value="480" <cfif pos and getParams.value[pos] is "480">selected</cfif>>8 Hours</option> 
     <option value="720" <cfif pos and getParams.value[pos] is "720">selected</cfif>>12 hours</option> 
     <option value="1440" <cfif pos and getParams.value[pos] is "1440">selected</cfif>>24 Hours</option> 
     <option value="4294967295" <cfif pos and getParams.value[pos] is "4294967295">selected</cfif>>Unlimited</option> 
    </select> 
</div> 
<cfif not pos> 
    <script> 
     $('##igShutdownTimer option.default').prop('selected', true); 
    </script> 
</cfif> 
+0

devrait probablement utiliser .prop ('sélectionné', true) au lieu de .attr ('sélectionné', 'sélectionné') ... mais jQuery ne peut pas sembler faire – Tibrogargan

Répondre

3

Vous devez placer votre code dans un gestionnaire document.ready pour qu'il soit exécuté lorsque le DOM a été chargé. Actuellement, votre bloc script est en cours d'exécution avant l'élément `select existe dans la page:

<script> 
    $(function() { 
     $('#igShutdownTimer option[default="default"]').attr('selected','selected'); 
    }); 
</script> 

Cela dit, il serait beaucoup mieux d'utiliser des prop() sur attr() et également sélectionner la valeur par défaut option en utilisant une classe, La création de vos propres attributs non standard signifie que votre code HTML est invalide. Quelque chose comme ceci:

<select form="configDetail" id="igShutdownTimer" name="9X26889E92489D" class="form-control"> 
    <option value="0">0 Minutes</option> 
    <!-- other options... --> 
    <option value="60" class="default">1 Hour</option> 
</select> 
$(function() { 
    $('#igShutdownTimer option.default').prop('selected', true); 
}); 
+0

la version de l'homme bon marché: échanger la position de la balise