如果我最后不写return false,Ajax请求不起作用

时间:2014-12-27 04:08:47

标签: ajax

这是我点击按钮时写的验证功能。

 function chk_add_area()
  {
var areaCountry=$('#areaCountry').val();
var areaCity=$('#areaCity').val();
var area=$('#area').val();

if(areaCountry.trim()=="")
{
    $('#err_areaCountry').fadeIn('slow');
    $('#err_areaCountry').html("Please Select Country");
    $('#areaCountry').focus();
    $('#err_areaCountry').fadeOut(3000);
    return false;
}

else //if(areaCountry.trim()!="" && areaCity.trim()!="" && area.trim()!="")
{
    $.ajax({
        url:'ajax.php?action=duplicatearea&areaCountry='+areaCountry+'&areaCity='+areaCity+'&area='+area,
        type:'get',
        success:function(res)
        {
            if(res=="exists")
            {
                $('#err_div').html("Area already exists");
            }
        }

    });
    //return false;
}
/* else
{
    return true;
} */

}`

如果我取消注释返回false,它可以正常工作但是表单不会成功提交&我无法继续前进。 谁能告诉我为什么?

1 个答案:

答案 0 :(得分:0)

如果该区域已存在,则需要return false,否则请通过。

您不需要return true;刚退出该功能工作正常。

function chk_add_area() {       // onsubmit handler
var areaCountry = $('#areaCountry').val().trim();
var areaCity = $('#areaCity').val().trim();
var area = $('#area').val().trim();

if ( areaCountry == "" ) {
    $('#err_areaCountry').fadeIn('slow');
    $('#err_areaCountry').html("Please Select Country");
    $('#areaCountry').focus();
    $('#err_areaCountry').fadeOut(3000);
    return false;
}

if ( areaCity == "" || area == "" ) {
    $('#err_div').html("Please Select City and Area");
    return false;
}

$.ajax({
        url: 'ajax.php?action=duplicatearea&areaCountry=' + areaCountry + 
            '&areaCity=' + areaCity + '&area=' + area,
        type: 'get',
        async: false,          // EDIT: added Dec 30
        success: function(res) {
            if ( res == "exists" ) {
                $('#err_div').html("Area already exists");
                return false;
            }
        }
// allow form submit to proceed
}

另外,我建议使用POST而不是GET,因为GET是可缓存的。有人可能会两次添加相同的区域。