Javascript & JQuery: невозможно увеличить в форме - PullRequest
0 голосов
/ 30 апреля 2010

У меня есть простая функция приращения, подобная этой:

  $(function(){
    $("#inc").click(function(){
        var value = parseInt($(":text[name='ice_id']").val()) + 1;
        $(":text[name='ice_id']").val(value);
    });
    $("#dec").click(function(){
        var value = parseInt($(":text[name='ice_id']").val()) - 1;
        $(":text[name='ice_id']").val(value);
    });
});

текстовое поле ice_id встроено в форму

<form id="masterSubmit" name="masterSubmit" action="" method="post">
     <td><input id="ice_id" type="text" name="ice_id" size="16" maxlength="15"></td>
</form>

Когда я пытаюсь теперь увеличить, он успешно увеличивает число, но показывает следующее странное поведение: Он «обновляет» сайт, поэтому содержание текстового поля исчезает. Это поведение исчезает, если я закомментирую теги формы ... к сожалению, теги формы необходимы для AJAX-отправки.

Есть ли способы избежать этой проблемы?

Заранее спасибо за любые подсказки и С наилучшими пожеланиями

Даниал

Ответы [ 2 ]

3 голосов
/ 30 апреля 2010

просто сделай return false;

$(function(){
    $("#inc").click(function(){
        var value = parseInt($(":text[name='ice_id']").val()) + 1;
        $(":text[name='ice_id']").val(value);
        return false;
    });
    $("#dec").click(function(){
        var value = parseInt($(":text[name='ice_id']").val()) - 1;
        $(":text[name='ice_id']").val(value);
        return false;
    });
});

Вы также можете улучшить свои коды до:

$(function(){
    $("#inc").click(function(){

        $(":text[name='ice_id']").val(function(index, value) { return value++; });
        return false;

    });
    $("#dec").click(function(){

        $(":text[name='ice_id']").val(function(index, value) { return value--; });
        return false;

    });
});
0 голосов
/ 30 апреля 2010

Вы также можете попробовать плагин jQuery Increment . Я разработал это как раз для такой цели. В дополнение к вашим элементам "inc" и "dec" вы можете добавить поддержку клавиатуры (стрелка U / D) и колесика мыши к элементам ввода формы

...