<form action="#" onsubmit="return validateForm()" method="post">
<table>
<tr>
<td><p> 1. </p></td>
<td><label> I am cool </label></td>
<div class="allQuestion">
<?php for($i=1; $i<=10; $i++){?><td><input type="radio" name="Dquestion[1]" value="<?=$i?>"> <?=$i?> </td> <?php } ?>
</div>
</tr>
</table><!-- strength_table end -->
<input type="submit" value="Submit"><br/>
</form>
function validateForm(){
var questions = document.getElementsByClassName("allQuestion");
for(var j=0; j<questions.length; j++){
if(!isOneInputChecked(questions[j], "radio")){
formValid = false;
}
}
alert(formValid ? "Submisson succesful!" : "Submisson Failed");
return formValid;
}
function isOneInputChecked(sel){
var inputs = sel.getElementsByTagName('input');
for(var k = 0; k < inputs.length; k++){
if(inputs[k].checked)
return true;
};
return false;
};
Я использую это, чтобы проверить мой радио вопрос, работает отлично, но когда я поставил <td>
перед тем <input>
, это работает странно, я знаю, что это цель, эффект все input warp by allQuestion и td блокирует его.
любая идея, как я держу тд на месте и создаю скрипт? я судимый этот код, но didt работы
var questions = document.getElementsByClassName("allQuestion").getElementsByTag("Td");
Не хранить DIV внутри таблицы, а не хранить td в div. Это бессмысленно. Просто дайте td вашему классу Question и проведите его через цикл foreach или что-то еще. – Refilon
понял ~ спасибо –