我正在重构使用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包含错误),但是在调用$(“之后不会反对进一步处理形式“)提交(); ?
IOW,我希望在将提交按钮和F12混合后,在控制台中看到“提交btn点击”和“即将提交表单”,但我不会...
确实,五个模型成员中有三个是空字符串,因此我有更多问题要追踪,但为什么我甚至没有看到这些控制台日志消息?
我在最后一行的Controller中有一个断点:
[HttpPost]
public ActionResult ReceiptCriteria(TLDSalesReceiptCriteriaModel model)
{
ViewBag.DebugMessage = "No error";
if (ModelState.IsValid) // inspect locals.modelstate [breakpoint set here]
...但我甚至没有达到它......?!?!?
回答Karl Anderson,这是相关的HTML:
<button type="submit" id="submit_button" class="bottomButtonEnabled">View Report</button>
如果有办法将控制台消息作为文本,我无法看到如何,所以我抓住了一声尖叫:
如果你的眼睛太小而无法阅读,可以这么说(我的是),这里有一些措辞:
shouldShowTB文件不存在 - 默认操作显示工具栏&gt;抛出:DOMException chrom.tabs不可用:您无权访问此API。确保这件事.... 无法加载资源:服务器响应状态为404(未找到)... sprite.png 无法加载资源:服务器响应状态为400(错误请求) 无法加载资源chrome-extension:// klibjjljfadl; fjkdlfjkdl ;; fjdlfjadl / tb / al / state.html MessagingReadyWrapper没有准备好。 name:abstractionLayerBack.js,location .... 超时等待插件,在没有插件的情况下调用就绪 ...
我做了Aegis所说的,并使用提交按钮本身或使用:
form action="/mypath/mycshtml" method="post"
...在右键单击并选择“检查元素”后在CDT中突出显示,我在右侧窗格的底部看到:
提交 形成 ......然后是一堆“gobbledygook”(这对我而言;也许Aegis明白了)
引用的文件是jquery.js:6497;下面它显示了一堆jquery的东西(sourcename的值是google的CDN jQuery文件的路径)。它应该指向我的submit_button点击处理程序吗?
也许至少我的问题的一部分是我正在调用“form”。明确提交,这对于提交按钮不应该是必要的 - 混合它应该自动提交表单,对吧?在评论完之后(在尝试使用document.form.submit()的原始javascript之后)我至少现在看到我在控制台中添加的第一个console.log msg(“提交btn clicked”)。所以介于那里和第二个console.log msg(没有写入控制台)之间的某些东西就失败了。
答案 0 :(得分:1)
如果事件绑定到#submit_button
,请使用Chrome开发工具查看?
答案 1 :(得分:0)
我现在正在完成提交功能。似乎有两件事导致了我的问题:
0)默认情况下提交表单的多余调用,因为这是一个提交输入小部件 1)在这里打电话给.join:
$('#hiddenDepts').val(deptsList).join(",");
一旦我切断了联接:
$('#hiddenDepts').val(deptsList);
......我已经过了那个地方。