2012-02-18 56 views
0

我有這樣的形式:停止事件不起作用的回車鍵

  <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> 

和捕獲KEYUP此mootools的事件:

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

我的問題是event.stop ()不會阻止表單提交時按ENTER鍵。

我也嘗試event.stopPropagation()和event.preventDefault()但沒有。當我按ENTER鍵時,它總是重定向url:「test/insert」。

爲什麼?

回答

3

這是因爲在keydown上也觸發了該事件,然後在表單上觸發了一個提交事件。

嘗試添加此:

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

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

編輯

以上將阻止一切形式submitions ,因爲這可能不是你以後,這裏有一個更好的簡單的解決方案:

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

我沒有把它寫之前,因爲你可能在實際上需要關鍵UP事件而不是DOWN,但這樣做更有意義。