在mootools中的keyup上停止事件对输入键不起作用

时间:2012-02-18 12:23:10

标签: mootools onkeyup

我有这样的表格:

            <div class="row border-tb">
                <form id="test-form" action="/test/insert" method="post" class="form-inline offset4 span16">
                    <div class="box-suggest span13 border-tb">
                        <input type="text" name="test" value="" id="test" class="span13" placeholder="proviamo con il test"/>
                    </div>
                    <button style="margin-left: 5px;" id="send-button" type="submit" class="btn"> <i class="icon-plus"></i> </button>
                </form>
            </div>

这个用于捕获键盘的mootools事件:

            $('test').addEvent("keyup",function(event){
                event.stop();
                alert("Why after this alert redirect on url: test/insert ??????");
            })

我的问题是,当我按下ENTER键时,event.stop()不会阻止表单提交。

我还尝试了event.stopPropagation()和event.preventDefault()但没有。当我按下ENTER键时,它总是重定向到url:“test / insert”。

为什么呢?

1 个答案:

答案 0 :(得分:3)

那是因为事件也在keydown上被触发,然后在表单上触发了一个提交事件。

尝试添加:

$('test-form').addEvent("submit",function(event){
   event.stop();
   return false;
});

==================

修改

以上内容将阻止所有形式的指示,因为这可能不是你所追求的,这是一个更简单的解决方案:

$('test').addEvent("keydown",function(event){
    event.stop();
    alert("Why after this alert redirect on url: test/insert ??????");
    return false;
})

之前我没有写过,因为你可能真的需要键UP事件而不是DOWN,但这只是更有意义。