2013-07-31 5 views
-3

Может кто-нибудь помочь мне, почему это не работает, как я ожидаю. Что я пытаюсь сделать, это добавить к переменной javascript на основе выпадающих списков.Добавление переменных javascript вместе

Итак: Вопрос 1 Если да х = х + 1

Вопрос 2 Если да х = х + 3

так, если да и х = 4

Прямо сейчас, это не позволит й добавить к й, вместо этого, он reasigns х каждый раза

<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

'x' должна быть глобальной переменной, такой как y и z. Они не разделяют сферу действия между двумя опросами флажков. – DevlshOne

+1

Кроме того, ваша разметка HTML ужасна. ВСЕ значения свойств должны иметь кавычки. – DevlshOne

ответ

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>  

Edited чтобы отразить более приемлемое использование .prop, а не .attr.

+0

Не только вы его очистили, но и показали мне, что я тоже делаю неправильно! Спасибо! – user1789437

1

Я думаю, что вы должны объявить й глобально подобно тому, как вы d eclare y и z. Вы не можете использовать переменную, которую вы никогда не объявляли, что вы по существу делаете.

var x = x - 1; //uses the variable x which has not been created yet 

Вместо var'ing x внутри функции var it где y и z. Но я не понимаю, что ваш код пытается достичь.

2

Link to jsbin

Markup

<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; 
} 
Смежные вопросы