2012-12-07 1 views
2

jsFiddle est hereComment garder entrée cachée afficher 1 tout le temps

S'il vous plaît suivez les étapes ci-dessous violon:

  • Cliquez sur le « Open Grid » et sélectionnez le « Oui ou Non » ou "Vrai ou Faux" option, vous verrez les boutons de réponse pertinents apparaissent en dessous. Maintenant, si vous regardez la ligne «nombre de réponses», il affiche une chaîne indiquant que «seulement 1 réponse» peut être choisi.

  • Cliquez sur un bouton de réponse pour l'activer, puis cliquez à nouveau sur pour l'éteindre afin que le bouton de réponse ne soit pas surligné en vert.

  • Cliquez sur le bouton "Ajouter une question", vous réalisez qu'il a ajouté le contrôle du haut dans une table. Aucune alerte ne s'affiche indiquant que vous avez sélectionné moins de réponses car vous n'avez pas sélectionné une réponse.

Le problème est que si vous cliquez sur l'une des réponses « Vrai ou faux » OU « Oui ou Non » pour l'activer puis cliquez sur le même bouton de réponse à nouveau pour la désactiver, puis Lorsque vous cliquez sur le bouton "Ajouter une question", il n'effectue pas la validation.

La raison pour laquelle je suppose que c'est parce que lorsque vous cliquez sur un bouton de réponse pour "Vrai", "Faux", "Oui" ou "Non", le nombre caché de réponses affiche le numéro 1 comme une réponse est activée (comme les boutons alphabétiques), mais lorsque vous éteignez le bouton, elle affiche 0 dans la saisie de texte masquée car aucune réponse n'est activée. Ce qui devrait arriver, c'est que comme il n'y a qu'une seule réponse, si cette chaîne apparaît, la saisie de texte cachée devrait toujours afficher 1, peu importe si le bouton de réponse est activé car l'utilisateur doit choisir une réponse. Je pense avoir découvert que le code ci-dessous a causé le problème.

function updateAnswer(context, iQuestionIndex, bDisableAppend) { 
    var _sCurrQ_Class = 'q_' + iQuestionIndex; 
    var _oCurrAnswerContainer = jQuery('#answer_selections .' + _sCurrQ_Class); 
    if (!_oCurrAnswerContainer.length) { 
     _oCurrAnswerContainer = jQuery(document.createElement('div')).addClass(_sCurrQ_Class); 
     !bDisableAppend && jQuery('#answer_selections').append(_oCurrAnswerContainer); 
    } 

    _oCurrAnswerContainer.html(''); 

    var value, id; 
    // loop through all buttons with 'on' status and their info to the current answer container 
    $('.answerBtnsOn', context).each(function (i, btn) { 

     var $btn = $(btn); 
     value = btn.value; 
     id = $btn.attr('id'); 

     var n = $("input[name='value[" + id + "]']").length; 
     var hid = "hidden" + id + n + "value"; 
     $(btn).attr("data-hid", hid); 


     if (!bDisableAppend) { 
      // append those values to the form 
      var input = '<input type="checkbox" id="' + hid + '" name="value[' + iQuestionIndex + '][]" value="' + value + '" checked /><label for="' + hid + '">' + value + '</label>'; 
      _oCurrAnswerContainer.append(input); 
     } 
    }); 
} 

Ma question est que dans le jsFiddle, quelqu'un peut-il être en mesure d'obtenir le violon de travail afin qu'il affiche l'alerte lorsque l'utilisateur n'a pas sélectionné une réponse après la mise en marche et d'éteindre le bouton de réponse pour " Vrai ou faux "ou" Oui ou non "?

+0

Personne ne va suivre ces étapes. Veuillez affiner votre énoncé de problème. –

+0

Il semble que '$ ('. Answertxt'," #optionAndAnswer "). Val()' commence à '1' (sans rien sélectionné), mais après l'avoir activé/désactivé, il devient' 0' à la place. Mais le code est un peu trop long pour le comprendre correctement. – pimvdb

+0

@pimvdb Oui, c'est ce que je pense que le problème est/ – user1881090

Répondre

1

Je pense que je l'ai corrigé here, bien que votre code soit vraiment en désordre. J'ai ajouté une vérification conditionnelle pour voir si le nombre de réponses sélectionnées est zéro où il devrait être un - si c'est le cas, il suffit de définir le nombre qui est défini comme valeur pour .answerstxt à un.

+0

Votre correction n'est pas visible à partir de votre réponse. Les réponses doivent être autonomes si possible afin qu'ils ne souffrent pas de la désintégration de liens et restent valides et utiles lorsque la cible du lien est en panne ou morte. – Nicktar

+0

Salut, merci pour votre réponse, juste un petit problème, je veux seulement que la vérification conditionnelle du nombre de réponses sélectionnées soit réglée sur "1" si l'option est "Vrai ou Faux" ou "Oui ou Non". Toute autre réponse, alors je veux qu'il retourne à 0. – user1881090

+0

J'ai voté pour votre réponse btw – user1881090

Questions connexes