任何人都可以帮助我解释为什么这不能像我期待的那样工作。 我想要做的是添加一个基于下拉的javascript变量。
所以: 问题1 如果是,则x = x + 1
问题2 如果是,则x = x + 3
所以如果两个都是x = 4
现在,这不会让x添加到x,而是每次重新分配x
<script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript"></script>
<script>
var z=1
var y=1
</script>
<script>
$(document).ready(function () {
$("#checkbox_1").change(function () {
if($(this).val() == "Yes") {
var x=y;
$("#textbox_1").attr('disabled', true);
$("#textbox_1").val(x);
}
else {
var x=x-1;
$("#textbox_1").attr('disabled', true);
$("#textbox_1").val(0);
}
});
});
</script>
<script>
$(document).ready(function () {
$("#checkbox_2").change(function () {
if($(this).val() == "Yes") {
var x=y+z;
$("#textbox_1").attr('disabled', true);
$("#textbox_1").val(x);
}
else {
var x=x-1;
$("#textbox_1").attr('disabled', true);
$("#textbox_1").val(0);
}
});
});
</script>
Do you have your Vheicals Title?<br />
<SELECT class="enteredClassic" id="checkbox_1"/>
<OPTION selected value=No>Select Option</OPTION>
<OPTION value=No>No</OPTION>
<OPTION value=Yes>Yes</OPTION>
</SELECT>
<br />
<br />
Do you earn more then $1,500 per month?<br />
<SELECT class="enteredClassic" id="checkbox_2" />
<OPTION selected value=No>Select Option</OPTION>
<OPTION value=No>No</OPTION>
<OPTION value=Yes>Yes</OPTION>
</SELECT>
<br />
<br />
Your chances of funding: <br />
<SELECT class="enteredYear" id="textbox_1" name=year>
<OPTION selected value="0">0%</OPTION>
<OPTION value=1>10%</OPTION>
<OPTION value=2>20%</OPTION>
<OPTION value=3>30%</OPTION>
</SELECT>
答案 0 :(得分:2)
清理你的剧本......
<script>
$(document).ready(function () {
var x = 0;
$("#checkbox_1").change(function () {
if($(this).val() == "Yes") {
x++;
$("#textbox_1").prop('disabled', true);
$("#textbox_1").val(x);
}
else {
x--;
$("#textbox_1").prop('disabled', false);
$("#textbox_1").val(x); // I don't understand why this is 0
}
});
$("#checkbox_2").change(function () {
if($(this).val() == "Yes") {
x += 3;
$("#textbox_1").prop('disabled', true);
$("#textbox_1").val(x);
}
else {
x -= 3;
$("#textbox_1").prop('disabled', false);
$("#textbox_1").val(x); // or this one. shouldn't it be x?
}
});
});
</script>
编辑以反映.prop
而非.attr
的更多可接受用法。
答案 1 :(得分:2)
<强>标记强>
<label>
Do you have your Vheicals Title?
<select class="enteredClassic" id="title">
<option selected value="No">select option</option>
<option value="No">No</option>
<option value="Yes">Yes</option>
</select>
</label>
<label>
Do you earn more then $1,500 per month?
<select class="enteredClassic" id="income">
<option selected value=No>select option</option>
<option value=No>No</option>
<option value=Yes>Yes</option>
</select>
</label>
<label>
Your chances of funding:
<select class="enteredYear" id="chances" name=year>
<option selected value="0">0%</option>
<option value="1">10%</option>
<option value="3">30%</option>
<option value="4">40%</option>
</select>
</label>
<强> JS 强>
$(document).ready(function () {
$(".enteredClassic").change(function () {
var chances = 0;
if($("#title").val() == 'Yes') chances++;
if($("#income").val() == 'Yes') chances += 3;
$("#chances").val(chances);
});
});
<强> CSS 强>
select {
display: block;
margin-bottom: 20px;
}
答案 2 :(得分:1)
我认为你应该声明x全局类似于你声明y和z的方式。你不能使用你从未声明的变量,这是你本来在做的事情。
var x = x - 1; //uses the variable x which has not been created yet
而不是在函数var中改变x,而不是y和z。但我可能不明白你的代码试图实现的目标。