#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;
}
Во-первых, я действительно не понимаю, почему вы используете радиокнопки и для ввода текста. По моему мнению, просто переключите вводимый текст на метки, или, если вы хотите, чтобы пользователь набрал ответ, просто дайте ему 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
Предупреждение: созданное событие может сломать некоторые другие флажки типа ввода Вы имеете в своем коде!
Сначала я думаю, что вы должны использовать атрибут 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;
}
После этого вы можете запросить базу данных, чтобы узнать, верна ли выбранная опция.
Как насчет того, чтобы вместо отправки формы с данными формы, вы отправляете строку / объект 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);
}
Теперь вы можете отправить этот объект вопроса на ваш сервер.