Bir uygulamaya başlamak için kullandığım bu anketi kullanıyorum. Ben göndermeden önce doğrulamak için javascript kullanıyorum, ancak her soruda yalnızca ikinci düğmeyi doğrulama ve her soruyu tek tek doğrulamayan bir sorunla karşılaşıyorum. Aşağıda kod yazdım.Radyo düğmeleri doğru şekilde doğrulamıyor
Anket
<?
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){
}
});
});
gerekirse daha fazla bilgi isteyin. Bir süredir bunun üzerinde sıkışıp kaldım ve çabucak çözmek istiyorum. Radyo düğmesi doğrulama her zaman benim zayıflık olmuştur, bu yüzden bu bugün fetih iyi olurdu
:
GÜNCELLEME
keman test edilmiştir: Görüşünüzü diğer mantığınızdan ayırmak için templasyon mekanizmalarına bakmalısınız. –
Ne demek istediğin hakkında biraz daha derinliklere girebilir misin? Merak ediyorum –
Tam olarak ne doğrulamaya çalışıyorsunuz? Her grup için radyo kutularından biri işaretli mi? – Snuffleupagus