脚本在从常规到asp页面移动到用户控件后停止工作

Script stopped working after moving from a regular to asp page to a usercontrol

本文关键字:用户 移动 控件 停止工作 常规 asp 脚本      更新时间:2023-09-26

我将一个站点从一个位置移动到另一个位置。然而,当我移动它时,我注意到java脚本中的一些项目停止了工作。我一直想弄清楚哪里出了问题,但这是我的最后手段。这是我的小提琴网站:

http://jsfiddle.net/robertpurpose/FCZVJ/6/

if ($("#Deg0").attr('checked') && $("#Res0").attr('checked')) {
    $("#TuitionPerHour").val(202.83);
}
if ($("#Deg0").attr('checked') && $("#Res1").attr('checked')) {
    $("#TuitionPerHour").val(202.83);
}
if ($("#Deg0").attr('checked') && $("#Res11").attr('checked')) {
    $("#TuitionPerHour").val(202.83);
}
if ($("#Deg0").attr('checked') && $("#Res2").attr('checked')) {
    $("#TuitionPerHour").val(parseFloat(243.39).toFixed(2));
}
if ($("#Deg0").attr('checked') && $("#Res3").attr('checked')) {
    $("#TuitionPerHour").val(parseFloat(304.24).toFixed(2));
}

可以随心所欲地直言不讳。我们都生活和学习。我把一切都当作一种学习体验

问题是您使用的是$.attr('checked')。它过去返回布尔值,但现在返回属性值(字符串)'checked'。HTML-为什么布尔属性没有布尔值?

所以你的支票

if ($("#Deg1").prop('checked')) {
    $("#TuitionPerHour").val(294.44);
}

总是路过。将所有$.attr更改为$.prophttp://jsfiddle.net/FCZVJ/7/

代码的其他问题

  • 你的jsfiddle JS需要在头部,所以你的函数updateTotal是全局的
  • 存储您的jQuery变量(您调用$("#Deg0")无数次)
  • eval(document.CostEst.FoodPlan[TheIndex_FoodPlan].value)); Crapola,使用eval将字符串转换为数字?使用parseInt()parseFloat
  • 由于自动强制,$("#SemesterHours").val() <= 7确实有效,但请注意,如果它说$("#SemesterHours").val() <= $('#somethinElse').val(),那么您将比较字符串和"17" > "9" === false
  • parseFloat(243.39).toFixed(2)是一种眼睛疼痛(代码气味)。你要求parseFloat在一个已经是浮动的东西上。你这么做可能是因为你想调用toFixed,而不能只使用243.39.toFixed()。您应该使用Number(243.39).toFixed()(243.39).toFixed()