我在项目上留下了最后一件事,而且还有一件事。这不仅是我的第一个Web应用程序,而且是我使用Jquery,CSS和MVC的第一个应用程序。我不知道如何处理这个问题。
我想做的是:
在我的控制器中,废物项经过验证,根据结果,可能会发生其中一件事。验证完成后,没有发生任何不良情况,将ViewData [“FailedWasteId”]设置为-9999。它是一个新的废物并且验证没有通过,它将ViewData [“FailedWasteId”]设置为0.它是一个现有的废物并且验证没有通过,这将ViewData [“FailedWasteId”]设置为废物的id
使用
在页面加载时设置此ViewData [“FailedWasteId”] <%=Html.Hidden("wFailId", int.Parse(ViewData["WasteFailID"].ToString()))%>
当验证没有通过时,页面将(通过window.location)缩放到一个不可见的div,打开不可见的div等。希望我的意图很清楚,这种对jquery的不良尝试。
新的废物div是现有的物品div是动态生成的(我知道这有效)“&gt;
所以我的问题是......帮助?我甚至无法正确解析数据,甚至无法使条件工作。由于这发生在post之后,我无法获得firebug来帮助我完成调试器,因为脚本尚未加载。
$(document).ready(function () {
var wasteId = parseInt($('#wFailId').text());
if (wasteId == -9999) {
//No Issue
}
else if (wasteId < 0) {
//Waste not saved to database
}
else if (wasteId == 0) {
//New Waste
window.location = '#0';
$('.editPanel').hide();
$('#GeneratedWasteGrid:first').before(newRow);
$('.editPanel').appendTo('#edit-panel-row').slideDown('slow');
}
else if (wasteId > 0) {
//Waste saved to database
}
});
答案 0 :(得分:3)
var wasteId = parseInt($('#wFailId').text());
这条线错了。隐藏input
元素内的attempts to get the text contents,这是空字符串,因为没有内容存在(例如。“Hello”在<span id="foo">Hello</span>
中)。这会导致parseInt()
返回值NaN
(非数字),导致您的每个条件都失败但不会导致抛出任何JavaScript异常。
您要查找的值作为元素的属性value
存在,可使用.val()
检索:
var wasteId = parseInt($('#wFailId').val(), 10); // or use:
var wasteId = +$('#wFailId').val();
(JavaScript的unary plus operator是我在必要时用于转换为数字的方法。请注意,在任何情况下,使用parseInt()
而不指定基数/基数{{1}是不好的做法。 },因为否则10
被解释为八进制数:小数点010
。)
答案 1 :(得分:0)