2

我正在重构一个使用 MVC 的 asp.net 报告。我删除了报告的一些标准(不再需要)并添加了一些新标准,但现在根本没有生成报告。我单击提交按钮,它只是返回。

因此,我在代码中添加了一些 console.log 语句作为我至少到达那里的健全性检查:

   $("#submit_button").click(function () {
        console.log("submit btn clicked");

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

        EnableButton("submit_button", false);

        var deptsList = $('#depts').checkedBoxes();
        $('#deptHeader span').html(deptsList.join(", "));
        var sitesList = $('#sites').checkedBoxes();
        $('#sitesHeader span').html(sitesList.join(", "));

        $('#hiddenDepts').val(deptsList); //do I need to make this: $('#hiddenDepts').val(deptsList).join(","); ?
        $('#hiddenSites').val(sitesList); // ""
        var UPCs = $('UPC').val();
        if (UPCs == "All") {
            $('UPC').val("1"); // take everything (1 and greater)
        }

        console.log("about to submit the form");
        $("form").submit();
    });

我认为它可能失败了,因为并非所有要传递的值都是有效的(modelState 包含错误),但是在调用 $("form").submit();之后不会反对进一步处理。?

IOW,我希望在混合提交按钮然后 F12 之后在控制台中看到“提交 btn 单击”和“即将提交表单”,但我不......

确实,五个模型成员中有三个是空字符串,所以我有更多问题要追查,但为什么我什至看不到这些控制台日志消息?

更新

我在控制器的最后一行有一个断点:

[HttpPost]
public ActionResult ReceiptCriteria(TLDSalesReceiptCriteriaModel model)
{
     ViewBag.DebugMessage = "No error";  
     if (ModelState.IsValid) // inspect locals.modelstate [breakpoint set here]

......但我什至没有达到它......?!?!?

更新 2

作为对 Karl Anderson 的回答,以下是相关的 HTML:

<button type="submit" id="submit_button" class="bottomButtonEnabled">View Report</button>

更新 3

如果有办法将控制台消息作为文本获取,我看不出如何,所以我捕捉到了一个尖叫声:

在此处输入图像描述

如果您的眼睛太小而无法阅读,可以这么说(我的眼睛是),这里有一些措辞:

shouldShowTB 文件不存在 - 默认操作 show Toolbar > DOMException chrom.tabs 不可用:您无权访问此 API。确保.... 加载资源失败:服务器响应状态为 404 (Not Found) ...sprite.png 加载资源失败:服务器响应状态为 400 (Bad Request) 加载资源失败chrome-extension://klibjjljfadl;fjkdlfjkdl;;fjdlfjadl/tb/al/state.html MessagingReadyWrapper 没有准备好。名称:abstractionLayerBack.js ,位置 .... 等待插件超时,在没有插件的情况下调用 ready ...

更新 4

我按照 Aegis 所说的做了,使用提交按钮本身或使用:

form action="/mypath/mycshtml" method="post" 

...右键单击并选择“检查元素”后在 CDT 中突出显示,我在右窗格的底部看到:

提交表格......然后是一堆“gobbledygook”(这对我来说是 g[r]eek;也许 Aegis 理解它)

引用的文件是 jquery.js:6497;下面它显示了 jquery 的一堆东西(sourcename 的值是 google 的 CDN jQuery 文件的路径)。它应该指向我的 submit_button 点击​​处理程序吗?

更新 5

也许我的问题的至少一部分是我明确地调用了“form”.submit,提交按钮不应该是必需的 - 捣碎它应该自动提交表单,对吧?在注释掉之后(在尝试了 document.form.submit() 的原始 javascript 之后),我至少现在看到了我在控制台中添加的第一个 console.log msg(“submit btn clicked”)。所以那里和第二个console.log msg(没有被写入控制台)之间的某个地方失败了。

4

2 回答 2

1

使用 Chrome 开发工具检查事件是否绑定到#submit_button

于 2013-08-08T21:06:02.747 回答
0

我现在一直通过提交功能。似乎有两件事导致我的问题:

0) 在默认情况下已经提交表单时提交表单的多余调用,因为这是一个提交输入小部件 1) 此处调用 .join:

$('#hiddenDepts').val(deptsList).join(",");

一旦我切断了连接:

$('#hiddenDepts').val(deptsList);

...我通过了那个地方。

于 2013-08-08T23:50:14.330 回答