0

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

http://jsfiddle.net/robert purpose/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));
}

随意直言不讳。我们都生活和学习。我把一切都当作学习经验

4

1 回答 1

1

问题是您正在使用$.attr('checked'). 以前返回布尔值,但现在返回属性值 (string) 'checked'HTML - 为什么布尔属性没有布尔值?

所以你的支票

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

总是经过。将所有更改$.attrhttp://jsfiddle.net/FCZVJ/7/$.prop

您的代码的其他问题

  • 你的 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()
于 2013-02-07T18:20:15.453 回答