У меня есть опрос с более чем 100 вопросами, где есть радиообъекты или текстовые поля.
Я понял, как получить результат от радиообмена, но я не могу получить результат из текстовых полей, в ту же переменную результата, что и радиообъекты, называемые temp.
Я использую следующий код, чтобы получить результат от радиобатов.
if($questions.find("input:radio:checked").length === $questions.length)
{
var temp ='';
$(':radio').each(function()
{
if($(this).is(':checked'))
{
temp += $(this).val()+ ",";
}
});
var currentSurveyName = getQueryVariable("sn");
var strResult = temp;
window.location="survey-result.php?sn=" + currentSurveyName + "&sr=" + strResult;
}
else
{
alert("Need to check all radiobuttons");
}
И мой код формы создается следующим образом:
<div class='aQuestion' id='div1'>
<h3>question 1</h3>
<label for='a108'><input type='radio' id='a108' name='grp108' value='0'><span class='answerOption'>0. Answer</span></br></label>
<label for='b108'><input type='radio' id='b108' name='grp108' value='1'><span class='answerOption'>1. Answer</span></br></label>
<label for='c108'><input type='radio' id='c108' name='grp108' value='2'><span class='answerOption'>2. Answer</span></br></label>
<label for='d108'><input type='radio' id='d108' name='grp108' value='3'><span class='answerOption'>3. Answer</span></br></label>
<label for='e108'><input type='radio' id='e108' name='grp108' value='4'><span class='answerOption'>4. Answer</span></label>
</div>
<div class='aQuestion' id='div2'>
<h3>question 2</h3>
<label for='a110'><input type='radio' id='a110' name='grp110' value='0'><span class='answerOption'>0. Answer</span></br></label>
<label for='b110'><input type='radio' id='b110' name='grp110' value='1'><span class='answerOption'>1. Answer</span></br></label>
<label for='c110'><input type='radio' id='c110' name='grp110' value='2'><span class='answerOption'>2. Answer</span></br></label>
<label for='d110'><input type='radio' id='d110' name='grp110' value='3'><span class='answerOption'>3. Answer</span></br></label>
<label for='e110'><input type='radio' id='e110' name='grp110' value='4'><span class='answerOption'>4. Answer</span></label>
</div>
<div class='aQuestion' id='div3'>
<h3>question 3</h3>
<input type='text' class='inputField' id='a113' name='grp113'>cm
</div>
<div class='aQuestion' id='div4'>
<h3>question 4</h3>
<input type='text' class='inputField' id='a114' name='grp114'>kg
</div>
Спасибо заранее: D Скажите, нужна ли вам дополнительная информация/код.
Что делать, если я хотел бы проверить текстовые поля, как я проверяю радиобарабаны ниже. Как будет выглядеть код тогда?
$('.aQuestion').each(function()
{
if($(this).find('input[type="radio"]:checked').length > 0)
{
$(this).addClass( "madeChoice" );
}
else
{
$(this).children("h3").addClass( "didntMakeChoice" );
}
});
Это то, что у вас есть для радио:
$(':radio').each(function()
{
if($(this).is(':checked'))
{
temp += $(this).val()+ ",";
}
});
и просто измените его на
$(':text').each(function()
{
if($(this).val() !== "")
{
temp += $(this).val() + ",";
}
});