вопрос расчета JQuery - PullRequest
       3

вопрос расчета JQuery

0 голосов
/ 13 июля 2010

У меня есть этот код:

<div>
    <input id="number" type="text" />

    <select id="Selection" name="D1"> 
    <option>Plus 1</option>
    <option>Minus 1</option>
    </select>

    <input id="result" type="text" />
    </div>

Как можно вычислить любое число, введенное во «число» ввода, на основе значения, выбранного в элементе управления select с помощью jQuery?Например, я хотел бы ввести 5 в поле ввода «число», и если я выберу «Плюс 1», добавьте 1 к числу и отобразите результат в поле «результат».Если я выберу «Минус 1», я сделаю вычитание и покажу новый результат.спасибо.

Ответы [ 4 ]

4 голосов
/ 13 июля 2010

Вы можете сделать это следующим образом:

$('#Selection').change(calc); //update result when changing the number
$("#number").keyup(calc);     //update result when select changes

function calc() {
  $('#result').val(
    parseInt($('#number').val(), 10) + parseInt($("#Selection").val(), 10)
  );
}

Попробуйте здесь , важной частью является parseInt() ваш ввод (вы должнытакже добавьте фильтр только для чисел и т. д.) В противном случае .val() из любого ввода является строкой, представьте ее следующим образом:

  • 1 + 1 == 2
  • "1" + "1" = "11"
1 голос
/ 13 июля 2010
<div>
    <input id="number" type="text" />

    <select id="Selection" name="D1"> 
        <option value="1">Plus 1</option>
        <option value="-1">Minus 1</option>
    </select>

    <input id="result" type="text" />
</div>

$('#Selection').change(function() {
   $('#result').val(parseInt($('#number').val(),10) + parseInt($(this).val(),10));
})

РЕДАКТИРОВАТЬ: да, комментарии верны, и я отредактировал код, чтобы отразить это

0 голосов
/ 13 июля 2010

Если вы хотите поддерживать лучше, чем просто сложение и вычитание, вы можете сделать это как eval(), если вы осторожны с тем, как данные попадают в #number:

<input id="number" />
<select id="Selection">
    <option value="+1">Plus 1</option>
    <option value="-1">Minus 1</option>
    <option value="*2">Times 2</option>
</select>
<input id="result"/>
<input type="button" onclick="$('#result').val(  eval($('#number').val() + $('#Selection').val()); );" value="Calculate" />

Не разрешать URLлибо данные ФОРМЫ должны быть предоставлены как значение по умолчанию для числа, либо вы сами открылись для уязвимости межсайтового скриптинга (XSS).

0 голосов
/ 13 июля 2010
<option value="minus">
<option value="plus">

если .val() элемента равен 'минус', то сделать x, если его плюс сделать y и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...