javascript表单验证

时间:2017-03-01 23:33:06

标签: javascript jquery

<div class="masterform type-selection">


<div class="radio"><span><input type="radio" name="feature_value_6" value="10" required=""></span></div><label>Cool</label>



function ShowLoading() {

var verif = true;

$(".masterform input").each(function() {
if($(this).val() == ""){
verif = false;
}
});
var radio = false;
$(".type-selection div.radio span").each(function() {
if($('.masterform input[type=radio]:checked').size() > 0){
radio = true;
}
});

if(verif == true && radio == true){
window.loading_screen = window.pleaseWait({
blabla }); }

}

我尝试了一切,变量发送给我,但是当我在无线电输入上使用此验证时,没有任何工作。只有当我通过点击我的safari导航器的十字架停止我的表单上的提交时,我的功能才有效!

在chrome上一切正常,但无法使其在safari上运行

2 个答案:

答案 0 :(得分:1)

我清理了你的代码。您似乎只需要使用length代替$.size()

&#13;
&#13;
var radio = false;
$(".type-selection div.radio span").each(function() {
  if ($('.masterform input[type=radio]:checked').length > 0) {
    radio = true;
  }
  console.log(radio);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="masterform type-selection">
  <div class="radio">
    <span>
      <input type="radio" name="feature_value_6" value="10" required="" checked>
    </span>
  </div>
  <label>Cool</label>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试使用jQuery的“prop”属性,如下所示:

$(".type-selection div.radio span input[type='radio']").each(function(elemIndex, domElement) { //Each radio 
    if($(domElement).prop('checked')){
        radio = true;
    }
});