0

我有一个像这样的简单增量函数:

  $(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 提交需要表单标签。

有什么方法可以避免这个问题吗?

提前感谢您的任何提示和最好的问候

达尼亚尔

4

2 回答 2

3

做一个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;

    });
});
于 2010-04-30T08:15:33.353 回答
0

您也可以试用jQuery Increment 插件。我就是为了这样的目的而设计它的。除了“inc”和“dec”元素之外,您还可以为表单输入元素添加键盘(U/D 箭头)和鼠标滚轮支持

于 2010-04-30T15:51:58.707 回答