我试图检查水平是否是某种程度,程度是什么,然后总计是某个领域的值。该代码仅适用于示例1,这使我认为我需要变量中的程度。
示例:
level = 1; degree = Terminal; 1_T = 205
level = 2; degree = NonTerminal; 2_NT = 230
$(document).ready(function(){
$(".level input" && ".degree input").change(function(){
var level = $(".level input").val();
if (level == "1" || degree == "Terminal"){
$(".total input").val($(".1_T input").val());
}
else if (level == "2" || degree == "NonTerminal") {
$(".total input").val($(".2_NT input").val());
}
});
})
我做错了什么?我试图弄清楚是否有一种方法来定义第二个变量,就像第3行我做的那样,应该可能有一些定义度数的东西。
答案 0 :(得分:2)
$(function(){
$(".level input, .degree input").change(function(){
var level = $(".level input").val();
var degree = $(".degree input").val();
// Perhaps you want (level=="1" && degree=="Terminal") ?
if (level == "1" || degree == "Terminal"){
$(".total input").val($(".1_T input").val());
}
else if (level == "2" || degree == "NonTerminal") {
$(".total input").val($(".2_NT input").val());
}
});
})
答案 1 :(得分:1)
你必须对你的变量degree
说明,否则它会失败,因为如果在你使用它之前未定义度数,它的值将是undefined
。
你的代码应该是:
$(document).ready(function(){
$(".level input, .degree input").change(function(){
var level = $(".level input").val();
var degree = $(".degree input").val();
if (level == "1" || degree == "Terminal"){
$(".total input").val($(".1_T input").val());
}
else if (level == "2" || degree == "NonTerminal") {
$(".total input").val($(".2_NT input").val());
}
});
})
".level input"
然后没有计算学位是否改变 javascript布尔运算是懒惰检查的。由于您的第一次测试level == "1"
一次为True,因此无需关注degree
是否已定义。但在例2中,第一次测试失败,并且未定义degree
变量。