Kullanıcı adı mevcut değilse, formu göndermek nasıl devre dışı bırakmak için

3 Cevap php

Ben kullanıcı adı durumunu kontrol ettirin. Sorun adı uygun olmasa bile, formu gönderme edilir olduğunu.

Edited Code:

<SCRIPT type="text/javascript">
$(document).ready(function(){

$("#emailch").change(function() { 

    var usr = $("#emailch").val();
    if(usr.length >= 3)
    {
        $("#status").html('<img src="images/loader.gif" align="absmiddle">&nbsp;Checking availability...');
        $.ajax({  
            type: "POST",  
            url: "includes/check.php",  
            data: "username="+ usr,  
            success: function(msg){   
                $("#status").ajaxComplete(function(event, request, settings){ 
                    if(msg == 'OK')
                    { 
                        $("#username").removeClass('object_error'); // if necessary
                        $("#username").addClass("object_ok");
                        $(this).html('&nbsp;<img src="images/tick.gif" align="absmiddle">');

                    }
                    else
                    {
                        $("#username").removeClass('object_ok'); // if necessary
                        $("#username").addClass("object_error");
                        $(this).html(msg);


                    }

                });

            }
        }); 
    }

    else
    {
        $("#status").html('<font color="red">The username should have at least <strong>3</strong> characters.</font>');
        $("#username").removeClass('object_ok'); // if necessary
        $("#username").addClass("object_error");
    }

});

});
</SCRIPT>

Ne istiyorum, o the form should not be posted if the user name is not available. Ben IF DURUMU içinde return false; ile denedim ama başarısız olur. Herhangi bir alternatif yöntemi tavsiye edin. Herhangi bir yardım takdir edilecektir.

3 Cevap

olursa olsun alan iyi ne varsa, return false göndermek onun kötü, hata üzerinden ya da her ne gerekiyorsa, form ajax gönderme yapmak

<form action="http://www.google.com" id="formId" method="post">
<input type="text" id="emailch" name="emailch" />
<input type="submit" />
</form>


<script type="text/javascript">

$(document).ready(function(){

    $("#formId").submit( function() { 

        if( $("#emailch").val().length >= 3){
            alert( 'the form is going to post via ajax here' );
        }else{
            alert( 'user name invalid error out or whatever you need to do.' );
        }
        return false;
    });
});
</script>

Sunulmadan bir form durdurmak için sahte dönüşünü kullanarak gerçekten jQuery çok iyi çalışmaz. Yerine event.preventDefault () kullanın, böyle bir şey deneyin:

$(function() {
    $('#formid').submit(function(event) {
        if ($("#emailch").val().length < 3) {
            event.preventDefault();
        }
    });
});

Kullanıcı adı mevcut değilse false (örneğin) için success işlevinde bir bayrak (değişken) olarak ayarlayın. Sonra form onsubmit işleyicisi bu bayrağı kontrol ve bayrağı false eşitse, bu olay işleyicisi return false, ve form teslim olmaz.