2014-09-27 2 views
0

Я пытаюсь создать простую функцию JQuery и просто хочу отправить форму только в том случае, если значение переключателя равно «1». Если вы не представите форму и не измените некоторые вещи, как я показываю в приведенном ниже коде.Не отправлять, если определенная радиокнопка не отмечена

На данный момент, если значение переключателя равно «1» или «0», форма все равно.

<script> 
$(document).ready(function() { 
$('.result').hide(); 
$('input.prettycheckbox').prettyCheckable({}); 

$('input.submit').on('click', function(e) { 
    e.preventDefault(); 
    $('input.prettycheckbox').each(function(){ 
     if ($(this).is(':checked') && $(this).is('input[value="0"]')) { 
      $(this).attr("disabled", true);; 
      $('.result').show(); 
      $('.advise').hide(); 
      $(this).parent().parent().addClass('incorrect'); 
     } else { 
       $('form').submit(); 
      }; 
     }); 
    }); 
}); 
</script> 

Большое спасибо!

ответ

0

Никогда хорошая идея прикрепить события к кнопке представить - вместо того, чтобы использовать форму Передать событие

$(function() { 
    $('.result').hide(); 
    $('input.prettycheckbox').prettyCheckable({}); 

    $('form').on('submit', function(e) { // use #formid if you have it 
     var ok = false; 
     $('input.prettycheckbox').each(function(){ 
     if ($(this).is(':checked') && $(this).is('input[value="0"]')) { 
      ok=true; // or other reason 
      $(this).attr("disabled", true);; 
      $('.result').show(); 
      $('.advise').hide(); 
      $(this).parent().parent().addClass('incorrect'); 
      } // seems to have been missing 
     }); 
     if (!ok) { // if not ok to submit, THEN preventDefault 
     e.preventDefault(); 
     } 
    }); 
}); 
+0

Я ухожу спать, поэтому я не могу исправить никаких проблем до завтра – mplungjan

0

Для упрощения; переопределить форму отправить событие и только предотвратить, если значение радио не 1.

HTML:

<form method="post" target=""> 
    <input type="radio" name="mandatory" value="0" />Selecting me won't work<br /> 
    <input type="radio" name="mandatory" value="1" />You must select me<br /> 
    <input type="submit" class="submit" value="Submit" /> 
<form> 

JQuery:

$(document).ready(function() { 

    $('form').on('submit', function (e) { 
     if($('input[name=mandatory]:checked').val()!= 1) 
     { 
      e.preventDefault(); 
     }    
    }); 

}); 

См форма fiddle

0

привязывать представить событие, то вручную проверить каждый флажок, используя

<script> 
$(document).ready(function() { $('.result').hide(); 
$('input.prettycheckbox').prettyCheckable({}); 

$('form.form_class').on('submit', function(e) { 
    e.preventDefault(); 
    var chkbx = $('input.prettycheckbox'); 
    var ret = new Array(chkbx.length); 

    for (var i = 0; i < chkbx.length; i++) 
    { 
     if ($(this).is(':checked') && $(this).is('input[value="0"]')) 
     { 
      $(this).attr("disabled", true);; 
      $('.result').show(); 
      $('.advise').hide(); 
      $(this).parent().parent().addClass('incorrect'); 
      return false; 
      continue; 
     } 
    } 
    return true 
    }); 
}); 
</script> 
Смежные вопросы