Reputation: 294
I have a results page that show users how they scored on a webform. I'm trying to display different messages based on their answer.
I've set up a basic alert to show what the user has selected.
var q1 = $('#webform-component-fieldset-1--question-1').text();
alert(q1);
if ($('#webform-component-fieldset-1--question-1:contains("A. Yes")')) {
$('.results-wrapper').hide();
$('.results').append('<div class="popup">User Selected A. Yes, for the first answer.</div>');
}
else if ($('#webform-component-fieldset-1--question-1:contains("B. No")')) {
$('.results-wrapper').hide();
$('.results').append('<div class="popup">User Selected B. No, for the first answer.</div>');
}
else if ($('#webform-component-fieldset-1--question-1:contains("C. I do not know")')) {
$('.results-wrapper').hide();
$('.results').append('<div class="popup">User Selected C. I do not know, for the first answer.</div>');
}
else {
alert('something went wrong');
}
Upvotes: 1
Views: 3236
Reputation: 30416
This is how I would do it (using jQuery's data()
funciton) (demo)
<div class="results">
<div class="results-wrapper">
<div class="form-item webform-component webform-component-display" id="webform-component-fieldset-1--question-1"
data-answer="C">C. I do not know</div>
</div>
</div>
<script>
var updateAnswer = function (question) {
var answer = question.data('answer');
if (answer === 'A') {
$('.results-wrapper').hide();
$('.results').append('<div class="popup">User Selected A. Yes, for the first answer.</div>');
} else if (answer === 'B') {
$('.results-wrapper').hide();
$('.results').append('<div class="popup">User Selected B. No, for the first answer.</div>');
} else if (answer === 'C') {
$('.results-wrapper').hide();
$('.results').append('<div class="popup">User Selected C. I do not know, for the first answer.</div>');
} else {
alert('something went wrong');
}
}
updateAnswer($('#webform-component-fieldset-1--question-1'));
</script>
Upvotes: 1
Reputation: 95027
The following will always be true because objects are always true.
if ($('#webform-component-fieldset-1--question-1:contains("A. Yes")'))
What you want is to know if any elements are selected.
if ($('#webform-component-fieldset-1--question-1:contains("A. Yes")').length)
Upvotes: 0