将javascript变量添加到一起
有人能帮我解释一下为什么这不能像我期望的那样工作吗。 我试图做的是根据下拉列表添加到javascript变量中 因此: 问题1 如果是x=x+1 问题2 如果是x=x+3 所以如果x=4都是 现在,这不会让x加上x,而是每次都重新设计x将javascript变量添加到一起,javascript,addition,Javascript,Addition,有人能帮我解释一下为什么这不能像我期望的那样工作吗。 我试图做的是根据下拉列表添加到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=
<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>
var z=1
变量y=1
$(文档).ready(函数(){
$(“#复选框_1”).change(函数(){
如果($(this.val()=“是”){
var x=y;
$(“#文本框_1”).attr('disabled',true);
$(“#文本框_1”).val(x);
}
否则{
var x=x-1;
$(“#文本框_1”).attr('disabled',true);
$(“#文本框_1”).val(0);
}
});
});
$(文档).ready(函数(){
$(“#复选框_2”).change(函数(){
如果($(this.val()=“是”){
var x=y+z;
$(“#文本框_1”).attr('disabled',true);
$(“#文本框_1”).val(x);
}
否则{
var x=x-1;
$(“#文本框_1”).attr('disabled',true);
$(“#文本框_1”).val(0);
}
});
});
你有你的职业头衔吗?
选择选项
不
对
你每月的收入超过1500美元吗?
选择选项
不
对
您的融资机会:
0%
10%
20%
30%
我认为您应该在全局范围内声明x,就像声明y和z一样。您不能使用从未声明过的变量,这是您实际上正在做的事情
var x = x - 1; //uses the variable x which has not been created yet
而不是在函数中变量x,它的y和z是。但我可能不明白您的代码试图实现什么。清理了您的脚本
<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>
$(文档).ready(函数(){
var x=0;
$(“#复选框_1”).change(函数(){
如果($(this.val()=“是”){
x++;
$(“#文本框_1”).prop('disabled',true);
$(“#文本框_1”).val(x);
}
否则{
x--;
$(“#文本框_1”).prop('disabled',false);
$(“#textbox_1”).val(x);//我不明白为什么这是0
}
});
$(“#复选框_2”).change(函数(){
如果($(this.val()=“是”){
x+=3;
$(“#文本框_1”).prop('disabled',true);
$(“#文本框_1”).val(x);
}
否则{
x-=3;
$(“#文本框_1”).prop('disabled',false);
$(“#textbox_1”).val(x);//或者这个。它不应该是x吗?
}
});
});
编辑以反映更可接受的.prop
用法,而不是.attr
标记
<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>
CSS
$(document).ready(function () {
$(".enteredClassic").change(function () {
var chances = 0;
if($("#title").val() == 'Yes') chances++;
if($("#income").val() == 'Yes') chances += 3;
$("#chances").val(chances);
});
});
select {
display: block;
margin-bottom: 20px;
}
x
应该是一个全局变量,如y和z。它们在两个复选框轮询之间不共享范围。而且,您的HTML标记非常糟糕。所有属性值都应该有引号。你不仅清理了它,而且还向我展示了我做错了什么!!非常感谢。