Как связать два поля ввода?

 #include <iostream>
 #include <string>

 using namespace std;

 int main()
 {
   string s;//string is defined here.

  cout << "Please enter a string with punctuation's: " << endl;//Asking for users input

  getline(cin, s);//reads in a single string one line at a time

/* ERROR Check: The loop didn't run at first because a semi-colon was placed at the end 
                of the statement.  Remember not to add it for loops. */
        for(auto &c : s)  //loop checks every character 
        {       
             if (ispunct(c)) //to see if its a punctuation
              {
               c=' ';       //if so it replaces it with a blank space.(delete) 
              }

        }

        cout <<  s << endl; 


   system("pause");
   return 0;
   }
0
задан Mohammad Imran 22 February 2019 в 11:47
поделиться

3 ответа

Во-первых, я действительно не понимаю, почему вы используете радиокнопки и для ввода текста. По моему мнению, просто переключите вводимый текст на метки, или, если вы хотите, чтобы пользователь набрал ответ, просто дайте ему 1 входной текст.

При этом, сохраняя созданный вами дизайн:

HTML:

<div id="options" class="form-group">
            <input type="radio" id="option_text" required/><input type="text" id="option_1" required/><br/><br/>
            <input type="radio" id="option_text2" required/><input type="text" id="option_2" required/><br/><br/>
            <input type="radio" id="option_text3" required/><input type="text" id="option_3" required/><br/><br/>
            <input type="radio" id="option_text4" required/><input type="text" id="option_4" required/>
            <button type="submit" id="sub">
            Press me
            </button>
</div>

<div id="output1">
</div>
<div id="output2">
</div>
<div id="output3">
</div>
<div id="output4">
</div>

Javascript:

$("#sub").on('click',function(){
let eachone=[];
    eachone[0]=$("#option_1").val();
    eachone[1]=$("#option_2").val();
    eachone[2]=$("#option_3").val();
    eachone[3]=$("#option_4").val();
        $("#output1").html(eachone[0]+" - "+$("#option_text").prop("checked"))
        $("#output2").html(eachone[1]+" - "+$("#option_text2").prop("checked"))
        $("#output3").html(eachone[2]+" - "+$("#option_text3").prop("checked"))
        $("#output4").html(eachone[3]+" - "+$("#option_text4").prop("checked"))
})

Если вы хотите что-то изменить, или тест для вашего точного теста, вот скрипка Jfiddle . Заметьте, я использую jQuery, просто для простоты кода вы можете изменить большинство ссылок jquery на document.getElementById

Редактировать: Обновлена ​​скрипта с флажками: JFiddle [114 ]

Edit2: Обновлена ​​скрипта с флажками с одним параметром: Jfiddle2

Предупреждение: созданное событие может сломать некоторые другие флажки типа ввода Вы имеете в своем коде!

0
ответ дан H. Figueiredo 22 February 2019 в 11:47
поделиться

Сначала я думаю, что вы должны использовать атрибут value radioButtons вместо второго ввода, просто поместите текст в диапазон или метку:

  <input type="radio" id="option1" name="option" value="option1">
  <label for="option1">8</label>

, затем вы можете получить выбранное значение выполнив:

var selectedOption = null;
if (document.getElementById('option1').checked) {
  selectedOption = document.getElementById('option1').value;
}

После этого вы можете запросить базу данных, чтобы узнать, верна ли выбранная опция.

0
ответ дан Albondi 22 February 2019 в 11:47
поделиться

Как насчет того, чтобы вместо отправки формы с данными формы, вы отправляете строку / объект JSON? Таким образом, ваш объект для вопроса может быть чем-то вроде

{
    "question" : "How many planets orbit around the sun?",
    "options" : [{
        "name" : "1",
        "value" : "7",
        "isAnswer" : false
        }, {
        "name" : "2",
        "value" : "8",
        "isAnswer" : true
    }]
}

Теперь осталось создать этот объект, когда нажата кнопка отправки. Для этого у вас могут быть идентификаторы, такие как

<input type="radio" id="radio-1" name="option" required/>
<input type="text" id="text-1" required/>

. Эти элементы можно создавать динамически или вручную, если вы создаете страницу только для одного вопроса.

Теперь, когда нажата кнопка для отправки формы, вы можете запустить приведенный ниже код, который создает объект JSON.

let question = {};
question.question = $("#question").val(); //Assuming you are using jQuery and id for question input box is question.
question.options = [];
for(i=0; i<4; i++) {
    let option = {};
    option.name = (i+1); //convert to ascii if you want alphabets
    option.value = $("#text-"+(i+1)).val();
    option.isAnswer = $("#radio-"+(i+1)).checked;
    question.options.push(option);
}

Теперь вы можете отправить этот объект вопроса на ваш сервер.

0
ответ дан ankit sinha 22 February 2019 в 11:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: