一起添加javascript变量

时间:2013-07-31 02:53:47

标签: 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=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>

3 个答案:

答案 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)

Link to jsbin

<强>标记

<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。但我可能不明白你的代码试图实现的目标。