2015-06-18 135 views
1

考慮下面的非常簡單的小提琴:http://jsfiddle.net/ofy3bhuf/如何防止特定字段使用jQuery提交表單?

我想阻止的形式從按下ENTER鍵在#no_return輸入被提交,但如果按下任何其他輸入回波它應作爲正常的。

正如你在小提琴中看到的那樣,我對錶單提交事件和#no_return的關鍵事件採取了行動。提交事件總是首先發生,但即使不提供,我是否能夠阻止來自輸入密鑰事件的提交事件?

代碼:

<form action='scratch_clean' method='get'> 
    <input id='return' /> 
    <input id="no_return" /> 
    <input type='submit' /> 
</form> 
<div id='result'></div> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    $('#no_return').on('keyup', function(e) { 
     e.preventDefault(); 
     var code = e.which; 
     if(code==13) 
     { 
     $('#result').append('keyup<br>'); 
     return false; 
     } 
     //return false; // not needed 

    }); 
    $('form').on('submit', function(e) { 
    e.preventDefault(); 
    $('#result').append('submit<br>'); 
    // EDIT: Other processing happens here 
    return false; 
    }); 
}); 
</script> 

回答

1

試試這個: -

$(document).ready(function() { 
$('form').on('submit', function(e) { 
    e.preventDefault(); 
    $('#result').append('submit<br>'); 
    return false; 
    }); 
}); 

$('#no_return').on('keypress', function(e) { 
    if(e.keyCode == 13) { 
    e.preventDefault(); 
    return false; 
    } 
}); 

Demo

+0

差不多,但它擊中了兩次,所以我刪除KEYUP和它的好。謝謝! –

+0

@BenHolness回答更新謝謝:) –