为啥我的 console.logs 没有被写入?

Posted

技术标签:

【中文标题】为啥我的 console.logs 没有被写入?【英文标题】:Why are my console.logs not being written?为什么我的 console.logs 没有被写入? 【发布时间】:2013-08-10 17:35:26 【问题描述】:

我正在重构一个使用 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 包含错误),但是在调用 $(" 之后 不会反对进一步处理表格").submit(); ?

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

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

更新

我在最后一行的 Controller 中有一个断点:

[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 文件不存在 - 默认操作显示工具栏 > DOMException chrom.tabs 不可用:您无权访问此 API。确保这件事.... 加载资源失败:服务器响应状态为 404 (Not Found) ... sprite.png 加载资源失败:服务器响应状态为 400(错误请求) 加载资源失败       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(未写入控制台)之间的某个地方出现了故障。

【问题讨论】:

你的 jQuery 选择器正确吗?它是带有IDsubmit_button 的按钮吗?还是submit_button的一类?还是submit_button 的值都错了? 首先检查控制台是否有任何潜在的语法错误,这可能会阻止代码表单首先运行 @Karl Anderson:请参阅更新 2。 @Sushanth(这不是波斯城堡的名字吗?):请参阅更新 3 【参考方案1】:

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

【讨论】:

你的意思是从Chrome的角度看它是否真的被认为是绑定的?如果我知道怎么做,我会... 右键单击 -> 检查元素。在右侧的边栏中,您可以看到与所选元素关联的 CSS 规则,滚动到底部并打开“事件侦听器”,然后“单击”。检查你的函数是否存在。【参考方案2】:

我现在正在通过提交功能完成它。似乎有两件事导致了我的问题:

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

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

一旦我切断了连接:

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

...我通过了那个位置。

【讨论】:

以上是关于为啥我的 console.logs 没有被写入?的主要内容,如果未能解决你的问题,请参考以下文章

为啥从我的python脚本写入文件被覆盖[重复]

JAVA write为啥无法写入数据?

c语言 用fwrite写入txt的文件,为啥是一堆乱码呢 ,下面是我的程序

使用 nodejs 的 Forever 将 console.logs 输出到屏幕

为啥HDFS写入速度如此之慢

为啥在我停止程序之前不会写入文件?