大家好,我已经在这个问题上停留了很长时间了。 所以情况就是这样。
我尝试了以下代码,但不幸的是,无论我键入什么代码,它都只会反映最后一个值。
var x = this.getField("texta");
var b = this.getField("texta-1");
var c = this.getField("texta-2");
var d = this.getField("texta-3"); // setting the field name
var y = x.value.toLowerCase();
y = y.replace(/\s/g, ''); // change the code value to lower case and remove spaces.
if(y == 'vv01'||y== 'vv1'){b.value = "0 "}{c.value = "6"}{d.value = "180"};
if(y == 'vv02'||y== 'vv2'){b.value = "0 "}{c.value = "9"}{d.value = "225"};
if(y == 'vv03'||y == 'vv3' ){b.value = "0 "}{c.value = "12"}{d.value = "300"};// Translate the code to its intended vale 3 examples written here.
表示当用户在“ texta”字段中输入vv1时,将在“ texta”中反映的值= vv1,而应在“ texta-1”中反映的值=“ texta-2”中的值= 6,“ text-3” = 180,但不幸的是,无论我键入什么代码,都只能反映出我最后编码的代码。
答案 0 :(得分:0)
仅在有条件执行{...}
条件之后的下一个块(包含在if
中),始终执行以下块。因此,
if(y == 'vv03'||y == 'vv3' ){b.value = "0 "}{c.value = "12"}{d.value = "300"}
意味着b.value = "0 "
仅在y == 'vv03'||y == 'vv3'
但c.value = "12"
和d.value = "300"
无条件执行时才执行。
如果您希望仅有条件地执行这三个分配,请将它们全部放在一个块中,即
if(y == 'vv03'||y == 'vv3' ){b.value = "0 "; c.value = "12"; d.value = "300"}
其他两个if
也是如此。