JQuery получить данные из радио кнопки и текстового поля

0

У меня есть опрос с более чем 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" );                
            }   

        });  
Теги:
forms
input
text
radio-button

1 ответ

0

Это то, что у вас есть для радио:

$(':radio').each(function()
{
    if($(this).is(':checked'))
    {
        temp += $(this).val()+ ",";
    }
});

и просто измените его на

$(':text').each(function()
{
    if($(this).val() !== "")
    {
        temp += $(this).val() + ",";
    }
});
  • 0
    Гениально, это действительно сработало Я использую следующий код, чтобы просмотреть их все и посмотреть, проверены ли радиокнопки. (Я обновил свой вопрос)
  • 0
    Я добавил небольшой побочный вопрос к своему первому вопросу. Если у кого-то есть время взглянуть на это? : D

Ещё вопросы

Сообщество Overcoder
Наверх
Меню