Ho questo questionario che uso per avviare un'applicazione. Sto usando javascript per convalidare prima di inviarlo, ma sto incontrando un problema in cui si convalida solo il secondo pulsante su ogni domanda e non convalida ogni domanda individualmente. Ho pubblicato il codice qui sotto.Pulsanti radio non validi correttamente
Questionario
<?
for($i = 1; $i <= count($questions); $i++){
print "<div class='form-group'>";
print "<div class='col-md-12'>";
print "<p>$i) ".$questions[$i-1]."</p>";
print "<label class='radio-inline'>";
print "<input type='radio' name='q$i' value='1'>Yes";
print "</label>";
print "<label class='radio-inline'>";
print "<input type='radio' name='q$i' value='-1'>No";
print "</label>";
print "</div>";
print "</div>";
}
?>
Javascript
$(function(){
$('#questionaire-form').submit(function(e){
e.preventDefault();
var prevname = "";
var questions = [];
$('.radio-inline').each(function(){
//$(this).next($(this)).is(':checked'));
var curname = $(this).find('input[type="radio"]').attr('name');
if(prevname == curname){
if(!$(this).find('input[name='+curname+']').is(':checked') && $(this).closest('div').find('p').hasClass('text-danger')){
return true; //skip to the next element
}else if(!$(this).find('input[name='+curname+']').is(':checked') && !$(this).closest('div').find('p').hasClass('text-danger')){
$(this).closest('div').find('p').addClass('text-danger');
}else if($(this).find('input[name='+curname+']').is(':checked') && $(this).closest('div').find('p').hasClass('text-danger')){
$(this).closest('div').find('p').removeClass('text-danger');
}else{
$(this).closest('div').find('p').removeClass('text-danger');
}
}
prevname = curname;
});
var go;
$('.radio-inline').closest('div').find('p').each(function(){
if($(this).hasClass('text-danger')){
go = false;
return false;
}else{
go = true;
}
});
if(go){
}
});
});
Si prega di chiedere per ulteriori informazioni, se necessario. Sono stato bloccato su questo per un po 'ora, e mi piacerebbe risolverlo rapidamente. convalida pulsante di scelta è sempre stata la mia debolezza, in modo da conquistare che oggi sarebbe grande
Come sidenote: dovresti davvero guardare ai meccanismi dei modelli per separare la tua visione dalla tua altra logica. –
puoi approfondire leggermente ciò che intendi? Sono curioso –
Che cosa stai cercando di convalidare? Solo che una delle radiobox è selezionata per ogni gruppo? – Snuffleupagus