ajax中的错误未被点击

时间:2016-07-19 19:10:01

标签: javascript ajax

我正在使用ajax将我的视图中的值发送到我的应用程序中的控制器。

的Ajax:

<script type="text/javascript">
$('#SendToController').on('click', function() {
    sendToController();
    return false;
});
function sendToController(){
    var selectedM = $('#Month').val();
    var chosenY = $('#Year').val();
    var chosenC = $('#County').val();
    //alert(chosenY);

    $.ajax({
        url: '/ALog/MReports/Generate',
        data: { 'monthV' : selectedM, 'year' : chosenY, 'county' : chosenC },
        type: 'GET',
        cache: false,
        success: function (data) {
            $("body").html(data);
            $('.dropdown-toggle').dropdown();
        },
        error: function () {
            if (selectedM === "") {
                alert("Error 1!");
            }
            else if (chosenY === "") {
                alert("Error 2!");
            }
            else if (chosenC === "") {
                alert("Error 3!");
            }
        }
    });
}


</script>

现在,在我的表单上,我有3个下拉列表,我从上面的ajax代码中获取值。 ajax函数转到error部分的唯一时间是chosenC和/或selectedM为空,但如果chosenY为空,则仍会转到success }。

当我将其留空以确保我使用javascript(chosenY或空(null)检查正确的值时,我已提醒""的值。我已经尝试了两种,都没有工作..

以下是我提醒chosenY

时的结果

enter image description here

所以从那以后我认为它是一个空字符串..所以我正在检查...但是没关系,因为即使它是空的,ajax方法也认为它是success而不是error ..为什么会这样?

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

感谢@MarcB,我想到了这一点。它实际上是在服务器端,它并没有引发错误,因为它正在使用该值来搜索数据库表中的记录,即使它是空字符串。

所以我只是将字符串转换为int,如果将年份作为空字符串传递,则会抛出异常。

再次感谢您的想法/帮助!