2015-03-22 2 views
0

Это сложно описать, поэтому я постараюсь изо всех сил.Добавить в значение, основанное на значении переключателя

У меня есть сценарий, работающий нормально, на основе выбранного переключателя он печатает значение в текстовое поле, которое отключено для редактирования. Я должен сделать этот шаг дальше ... Мне нужно это значение, чтобы потом участвовать в функции добавления, добавляя значение переключателя.

Это то, что я пробовал, и это не удалось. Нет ошибок, но не добавляет, чего я хочу. Если я удаляю операторы if, он работает, но только печатает начальное значение переключателя. Мне нужно добавить к этому значению в зависимости от выбранного.

изменить: добавление html в соответствии с запросом.

<center> 
Choice1 : <input type="radio" name="region" id="choice1" value="10.25"> 
Choice2 : <input type="radio" name="region" id="choice2" value="11.25"> 
Choice3 : <input type="radio" name="region" id="choice3" value="8.25"> 
</center> 

//Enter how many in this box 
How many? <input type="text" id="addtl" size="3" maxlength="2"></input> @ 

//this is the choice, based on radio button, add something to it 
<input type="text" id="add_cost" size="2" maxlength="6"></input> 

<script> 
//print in the box 

$('input[name="region"]').change(function(){ 
$('#add_cost').val($('input[name="region"]:checked').val()); 
if(add_cost == 11.25) { 
    add_cost + 4; 
} 
else if (add_cost == 10.25){ 
    add_cost + 1; 
} 
else if(add_cost == 8.25){ 
    add_cost + 3; 
} 

}); 



</script> 
+1

Пожалуйста, разместите связанный HTML-код. –

ответ

1

Я переписываю ваш код сценария, если я неправильно понял ваши намерения;

$('input[name="region"]').change(function() { 
     var add_cost = parseFloat($('input[name="region"]:checked').val()); 
     if (add_cost == 11.25) { 
      add_cost += 4; 
     } else if (add_cost == 10.25) { 
      add_cost += 1; 
     } else if (add_cost == 8.25) { 
      add_cost += 3; 
     } 
     $('#add_cost').val(add_cost); 

    }); 
+0

Я не знаю, как и почему, но это работает! если вы не возражаете, объясняя разницу, я уверен, что смогу научиться этому. – VashTS

+0

вам нужно понять «переменную». в вашем коде через if-else-if ... вы установили значение add_cost в нужное значение, но вы не установили add_cost в значение $ ('# add_cost'), это ключевой момент. Кроме того, вам нужно проанализировать значение для float, если javascript не будет рассматривать значение как строку, таким образом, 11.25 + 4 == 11.254. Надеюсь, что это поможет вам – Alexer

0

Вы, кажется, ссылающийся на add_cost текстовое поле просто "add_cost". Если вы не объявили переменную этим именем, вам нужно будет обращаться к $ ("# add_cost"). Val() для ссылки на его значение. Или просто объявите такую ​​переменную, содержащую $ ("# add_cost"). Val().

$('#add_cost').val($('input[name="region"]:checked').val()); 
var add_cost = parseFloat($("#add_cost").val()); 
if(add_cost == 11.25) { 
    add_cost + 4; 
} 
+1

Что это за int.Parse? вы имеете в виду, что parseFloat (num, 10) – mohamedrias

+0

перепутал языки, исправил его. Плюс благодарность за наблюдение с плавающей точкой, и, действительно, отбрасывание его в int явно ошибочно. – Veverke

Смежные вопросы