3

ここで本当に困っています。私はこれに頭を悩ませることはできません!

私がやりたいことは、電子メールアドレスを検証した後にフォームを送信し、「必須」のクラスでラベル付けした各入力を送信することです。それらをループして、それぞれが入力されている場合にのみ送信する方法を教えてくれる人に本当に感謝しています.

<script type="text/javascript">
    $(document).ready(function() {
        $('.button').click(function() {
            var email = $("input.email").val();        
            var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
            if(filter.test(email)) {
                $('input.required').each(function() {
                    var name = $("input.required").val();
                    if(name != "") {
                        $('#form').submit();
                    } else {
                        $('#error').show();
                        return false;
                    }
                });
            } 
            else {
                $('#error').show();
                return false;
            }
        });
    });
</script>
4

2 に答える 2

11

を使用して、.filter()空の要素のみを除外し、フィルターに一致した要素の数を確認できます。入力がフィルターに一致した場合、エラーが発生したため、投稿しないでください。このようなもの:

var emptyFields = $('input.required').filter(function() {
    return $(this).val() === "";
}).length;

if (emptyFields === 0) {
   $('#form').submit();
} else {
   $('#error').show();
   return false;
}
于 2012-10-12T17:51:05.687 に答える
3
    var isValid = true;  // Set the isValid to flag try initially

    $('input.required').each(function() {   // Loop thru all the elements
        var name = $("input.required").val();
        if(name != "") {  // If not empty do nothing

        } else {          
            isValid = false; // If one loop is empty set the isValid flag to false
            return false;    // Break out of .each loop 
        }
    });

    if(isValid){    // If valid submit form else show error
      $('#form').submit();
    }
    else{
       $('#error').show();
    return false;
}
于 2012-10-12T17:46:35.083 に答える