2

送信ボタンのクリック ハンドラーの最後で、Resharper は「すべてのコード パスが値を返すわけではありません」と警告します。

イベント ハンドラーから期待される値は何ですか?

完全な開示に敬意を表して、これはそのイベント ハンドラーです。

   $("#submit_button").click(function() {
        // http://stackoverflow.com/questions/18192288/how-can-i-compare-date-time-values-using-the-jqueryui-datepicker-and-html5-time
        var begD = $.datepicker.parseDate('mm/dd/yy', $('#BeginDate').val());
        var endD = $.datepicker.parseDate('mm/dd/yy', $('#EndDate').val());
        if (begD > endD) {
            alert('Begin date must be before End date');
            $('#BeginDate').focus();
            return false;
        }
        else if (begD.toString() == endD.toString()) {
            var dteString = begD.getFullYear() + "/" + (begD.getMonth() + 1) + "/" + begD.getDate();
            var begT = new Date(dteString + " " + $('#BeginTime').val());
            var endT = new Date(dteString + " " + $('#EndTime').val());

            if (begT > endT) {
                alert('Begin date must be before End date');
                $('#BeginTime').focus();
                return false;
            }
        }

        $("#NumberOfResults").css("visibility", "visible");
        $("#NumberOfResults").html("Please wait...");

        EnableButton("submit_button", false);

        // If all are selected, don't enumerate them; just set it at "All" (change of case shows that the logic did execute)
        var deptsList = $('#depts').checkedBoxes();
        if (deptsList.length < deptsArray.length) {
            $('#deptHeader span').html(deptsList.join(", "));
        }
        else if (deptsList.length == deptsArray.length) {
            $('#deptHeader span').html("All");
        }
        // " "
        var sitesList = $('#sites').checkedBoxes();
        $('#sitesHeader span').html(sitesList.join(", "));
        if (sitesList.length < sitesArray.length) {
            $('#sitesHeader span').html(sitesList.join(", "));
        }
        else if (sitesList.length == sitesArray.length) {
            $('#sitesHeader span').html("All");
        }

        $('#hiddenDepts').val(deptsList);
        $('#hiddenSites').val(sitesList);
        var UPCs = $('#UPC').val();
        if (UPCs == "All") {
            $('#UPC').val("1"); // take everything (1 and greater)
        }

        var resultsText = jQuery.trim($("#spanNumberOfResults").text());
        if (resultsText != "") {
            $("#NumberOfResults").css("visibility", "visible");

            if (resultsText == "0") {
                $("#NumberOfResults").css("color", "red");
            } else {
                var href = '/@ConfigurationManager.AppSettings["ThisApp"]/CCRCriteria/LoadReport';
                // report_parms (sic) is referenced from LoadReport
                var report_parms = {
                    GUID: "@Model.GUID",
                    SerialNumber: "@Model.SerialNumber",
                    ReportName: "@Model.ReportName"
                };
                window.open(href, "report_window", "resizable=1, width=850, left=" + (screen.width / 2 - 425));
            }
        }
    }); // end of submit button click
4

2 に答える 2

3

Resharper はイベント ハンドラーを認識しません。

あなたの関数が時々return false何も返さないことがわかり、文句を言います。

このパターンがイベント ハンドラーに完全に適していることを理解していません。

于 2013-08-15T16:18:54.220 に答える
2

それを無視します。クリック ハンドラーは、クリックを通常どおり処理するか (true)、無視するか (false) を示すブール値を返すことができます。

Resharper は、関数内の戻り値を、常に何かを返す必要があるという手がかりと見なします。

于 2013-08-15T16:19:09.813 に答える