0

所以我有这个表单,通过 jQuery ajax 发送,但我想验证这些字段。我知道如何验证正常的输入字段,但是单选按钮和复选框会造成麻烦。这是我验证表单并发送它并显示结果的代码。

$(function() {
    $("#submit").click(function() {
var kysymys1 = $.trim($("input.kysymys1").val());
      if (kysymys1 == "") {
          alert('Täytä kaikki kentät.');
          return false;
      }
var kysymys2 = $.trim($("input.kysymys2").val());
      if (kysymys2 == "") {
          alert('Täytä kaikki kentät.');
          return false;
      }
var kysymys3 = $.trim($("input.kysymys3").val());
      if (kysymys3 == "") {
          alert('Täytä kaikki kentät.');
          return false;
      }

      var dataString = $('#service-test').serialize();
      //alert (dataString);return false;
     $.ajax({
    type: "POST",
    url: "../quiz.php",
    data: dataString,
    dataType: "text",
    error: function(){ alert ('Nyt jotakin meni kyllä pahemman kerran pieleen. Yritä uudelleen?');
 },
    success: function(data) {
 $("#result").html(data);
$('#service-test').fadeOut('slow');
   }


  });
  return false;

    });
  });        

和表格本身:

<div style="border:1px solid grey;">
<div id="result" style="padding:2%;"></div>
<form id="service-test" action="#" method="../quiz.php" style="padding:2%;">
Muuttuuko sivujen sisältö usein?
<input type="radio" name="muuttuminen" value="Kylla" class="kysymys1" /> Kyllä
<input type="radio" name="muuttuminen" value="Ei" class="kysymys1" />Ei
Mitä näistä voisit haluta sivuillesi?
<input type="checkbox" name="possiblecontent" value="Kuvagallerian"  class="kysymys2" />Kuvagallerian
<input type="checkbox" name="possiblecontent" value="Pieni verkkokauppa"  class="kysymys2" />Pieni verkkokauppa
<input type="checkbox" name="possiblecontent" value="Isompi verkkokauppa"  class="kysymys2" />Isompi verkkokauppa
<input type="checkbox" name="possiblecontent" value="Jotain muuta"  class="kysymys2" />Jotain muuta
Millaisen ulkoasun haluaisit?
<input type="radio" name="ulkoasu" value="Massasta erottuvan, uniikin ulkoasun"  class="kysymys4" /> Massasta erottuvan, uniikin ulkoasun
<input type="radio" name="ulkoasu" value="Jotain muuta"  class="kysymys3" /> Jotain muuta
<input id="submit" type="submit" /></form>
</div>

但是,如果用户不选择,验证部分不会做任何事情。

这里也是一个 jsfidde:http: //jsfiddle.net/ducVP/4/

4

2 回答 2

1

而不是检查值,您想检查复选框/单选按钮是否已被选中..

所以试试这个

if ($('input.kysymys1:checked').val() == 'false') {
          alert('Täytä kaikki kentät.');
          return false;
}

这将检查复选框是否被选中,如果没有,则发出警报。

编辑 为什么不将其中一个单选按钮作为默认选项进行检查?

于 2012-08-04T11:18:14.600 回答
1

更改单选按钮验证

var kysymys1 = $.trim($("input.kysymys1").val());
          if (kysymys1 == "") {
              alert('Täytä kaikki kentät.');
              return false;
          }

if (!$(".kysymys1").is(':checked')) {
          alert('Täytä kaikki kentät.');
          return false;
      }

http://jsfiddle.net/ducVP/13/

于 2012-08-04T11:21:46.877 回答