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

时间:2013-02-07 18:08:55

标签: javascript asp.net

我将网站从一个位置移动到另一个位置。但是我注意到,当我移动它时,我的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));
}

随意变得像你想要的那样生硬。我们都生活和学习。我将一切都视为一种学习经历

1 个答案:

答案 0 :(得分:1)

问题是您使用的是$.attr('checked')。用于返回布尔值,但现在返回属性值(字符串)'checked'HTML - Why boolean attributes do not have boolean value?

所以你的支票

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询问已经浮动的东西。你可能这样做是因为你想调用它上面的固定而你不能只使用243.39.toFixed()。您应该使用Number(243.39).toFixed()(243.39).toFixed()