在每个警报页面刷新后,它不应该刷新以停止刷新我使用防止默认工作正常在chrome但不在Firefox中

时间:2015-01-12 06:24:38

标签: jquery google-chrome firefox

活动。防止chrome中的默认工作但不在firefox中工作我已经尝试了两种方法但是没有工作我已经搜索了所有可能的解决方案,但它没有工作。 如果您希望我发布我的所有代码,如果您没有发现错误,我会发布它。

function validate_calc(e){
    event.preventDefault();



function validate_calc(event){
event.preventDefault();

if ($('input[name=water]:checked').length > 0) {

    var $radio = $('input[name=water]:checked');
    var id = $radio.attr('id');
    if(id == 'water'){
    if($('input[name=rad_waters]:checked').length > 0){
        if($('input[name=water_types]:checked').length > 0){
            $value = jQuery.trim($(".cal_input").val());
            if($value == ""){
            alert('Please Insert Values');
            return;
            } else {
                if($.isNumeric($(".cal_input").val())){
                var form_data = {
                 length: $('input[name="length"]').val(),
                 width: $('input[name="width"]').val(),
                    };

                    jQuery.ajax({
                    type        : "POST",
                    data        : form_data,
                    url         : baseurl+'solar_calculator/calculate_area',
                    success     : function(msg){
                    alert(msg);return;  
                    }
                    });
                }else{
                    alert('Value should be in Numbers.');
                    return;
                   }
            }
        }else{
            alert('Select a Sub water type');
            return;
        }
        }else{
        alert('Select a water type.');
        return;
        }
    } else {
    $value = jQuery.trim($(".cal_input").val());
            if($value == ""){
            alert('Please Insert Values');
            return;
            } else {
                if($.isNumeric($(".cal_input").val())){
                    var form_data = {
                 length: $('input[name="length"]').val(),
                 width: $('input[name="width"]').val(),
                    };
                    jQuery.ajax({
                    type        : "POST",
                    data        : form_data,
                    url         : baseurl+'solar_calculator/calculate_area',
                    success     : function(msg){
                    alert(msg);return;  
                    }
                    });
                }else{
                    alert('Value should be in Numbers.');
                    return;
                   }
            }
    }
    } else {
alert('Please Select a water type');
return;
}
}

或者我使用这种方法它甚至没有工作

function validate_calc(e){
    e.preventDefault();

..........

2 个答案:

答案 0 :(得分:2)

您正在以" e"函数中的参数然后用" event"?引用它正确的语法应该是

function validate_calc(e){
    e.preventDefault();
    // ...
}

此外,为了使您的代码能够正常工作,您必须将正确的事件值传递给函数,否则它将无法正常工作。

你的代码在chrome中运行但不在firefox中运行的原因是你正在使用超级全局变量" event"这是在chrome中定义的但不是在firefox中定义的。您可以在此处阅读更多内容Unexpected access to "event" variable across browsers?

可行的代码:

$("form").submit(function(e) {
    validate_calc(e);
}

不起作用的示例代码:

$("form").submit(function() {
    validate_calc();
}

答案 1 :(得分:1)

事件 - 事件阻止默认不执行功能。

用id做 如

$('#myid').click(function(event){
event.preventDefault;
alert('am i working....'); return
})