javascript — html-форма внутри тега php для проверки кнопки-переключателя?

как проверить радио кнопки. выбран хотя бы один вариант.

код будет отображать вопрос и 3 ответа в виде переключателей из базы данных.
например

what is Captial of India?
O New Delhi
O Chennai
O Mumbai

Пользователь должен выбрать правильный ответ. если пользователь не выбирает какой-либо ответ и нажимает кнопку «Отправить», я хочу показать сообщение «Пожалуйста, ответьте на вопрос».

мой код:

<?php

$today=date("Y-m-d");
mysql_query("SET CHARACTER SET utf8");
echo "<form method='post' id='submit' action='checkresult.php' dir='rtl'>";
$sql="SELECT * FROM cquestions where showdate='$today' limit 1";
$result=mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
echo "<p>" . $row['cqtext'] . "</p>";
$sql2="SELECT * FROM canswers where cqid=".$row['cqid'];
$result2=mysql_query($sql2);
while($row2=mysql_fetch_assoc($result2))
{
echo "<input type='radio' name='".$row['cqid']."' value='".$row2['cqans']."' />".$row2['aatext'];
echo"<br>";
}
}
echo"<br>";
echo"<br>";
echo"<br>";
echo "<div align='left' style='padding-left:160px;'>";
echo"<input type='submit' id='submit' name='submit' value='التالي' />";
echo "</div>";
echo "</form>" ;
?>

как это сделать с помощью JavaScript?

Я пытался так.

echo "<form name='q1' method='post' id='submit' action='checkresult.php' onsubmit='return validateForm()';>";

echo "<input type='radio' id='a' name='".$row['cqid']."' value='".$row2['cqans']."' />".$row2['aatext'];

и это сработало.

function validateForm()
{
var a = document.getElementById('a');
if ( (a.checked == false ) )
{
alert ( "Please answer the question ");
return false;
}
}

это сработало.

function RadioValidator()
{
var ShowAlert = '';
var AllFormElements = window.document.getElementById("submit").elements;
for (i = 0; i < AllFormElements.length; i++)
{
if (AllFormElements[i].type == 'radio')
{
var ThisRadio = AllFormElements[i].name;
var ThisChecked = 'No';
var AllRadioOptions = document.getElementsByName(ThisRadio);
for (x = 0; x < AllRadioOptions.length; x++)
{
if (AllRadioOptions[x].checked && ThisChecked == 'No')
{
ThisChecked = 'Yes';
break;
}
}
var AlreadySearched = ShowAlert.indexOf(ThisRadio);
if (ThisChecked == 'No' && AlreadySearched == -1)
{
ShowAlert = ShowAlert + ThisRadio + ' يرجى الإجابة على السؤال\n';
}
}
}
if (ShowAlert != '')
{
alert(ShowAlert);
return false;
}
else
{
return true;
}
}
</script>

0

Решение

Это не сработало из-за неправильного объявления JS-функции.

Это правильный способ объявления функции. Не забудьте использовать фигурные скобки.

function validateForm() {
var a = document.getElementById('a');
if (!a.checked)
{
alert ( "please answer the question ");
return false;
}
}

Кроме того, если вы хотите, чтобы мы знали, почему код php не работает, нам нужно взглянуть на исходный код.

0

Другие решения

однажды попробуй это ..

if(isset($_POST['submit']))
{
if($row['cqid']=="")
{
echo "Please select an answer";
}
}

Я не знаю, работает ли это или нет .. но однажды попробуй …

0

echo "<form name='q1' method='post' id='submit' action='checkresult.php' onclick='return validateForm(e)';>";

<script type="text/javascript">

function validateForm(e) {
e.preventDefault();
var a = document.getElementById('a');
if ( (a.checked == false ) )
{
alert ( "please answer the question ");
return false;
}
}

</script>

Попробуй это

0

если пользователь не выбирает какой-либо ответ и нажимает кнопку «Отправить», я хочу показать сообщение «Пожалуйста, ответьте на вопрос». … как это сделать с помощью JavaScript?

Вам нужно будет проверить, что любая из переключателей отмечена. Удобный способ сделать это — дать им всем класс, а затем извлечь все элементы DOM с этим именем класса.

Вот пример.

<form onsubmit="return validateForm();">
<!-- note how all the radio buttons have the same name -->
<input type='radio' class="question" name='question' value='New Delhi' />
<input type='radio' class="question" name='question' value='Chennai' />
<input type='radio' class="question" name='question' value='Mumbai' />
<input type="submit" value="submit" />
</form>
<script>
function validateForm() {
var questions = document.getElementsByClassName('question'),
i = 0;

for (; i < questions.length; i++) {
if (questions[i].type === 'radio' && questions[i].checked) {
alert('You selected ' + questions[i].value
+ ', the form will submit now');
return true;
}
}
alert('please answer the question');
return false;
}
</script>
0
По вопросам рекламы [email protected]