2015-02-09 84 views
1

如何禁用所有輸入字段的表單提交,但提交按鈕(ID爲提交)。下面的代碼工作,但問題是,我不能在textareas中做新的行。我正在使用jQuery。我的目標是阻止提交表單進入。如何禁用所有字段的表單提交,但提交按鈕

$('form').on('keyup keypress', function(e) { 
    var code; 
    code = e.keyCode || e.which; 
    if (code === 13) { 
    e.preventDefault(); 
    return false; 
    } 
}); 

回答

0

你可以檢查輸入的textarea是否有焦點。

檢查代碼片斷

(function($) { 
 
    $('form').on('keyup keypress', function(e) { 
 
    if ($("input,textarea").is(":focus")) { 
 
     //input and text area has focus 
 
    } else { 
 
     var code; 
 
     code = e.keyCode || e.which; 
 
     if (code === 13) { 
 
     e.preventDefault(); 
 
     console.log('hello'); 
 
     return false; 
 
     } 
 
    } 
 
    }); 
 
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action=""> 
 
    <textarea name="user_eingabe" cols="50" rows="10"></textarea> 
 
    <input type="submit"> 
 
</form>

+0

這不適用於所有領域。 http://jsfiddle.net/vxa32q86/ – 2015-02-09 19:58:20

0

如果沒有提交按鈕,然後按Enter鍵將永遠不會提交表單。

只需找到您的提交按鈕(輸入類型=「提交」或按鈕),並將您的元素更改爲某種類型的按鈕並分配點擊處理程序以提交表單。

<input id="formSubmit" type="button" value="Submit" /> 

不要忘記,<button>隱含有一個類型提交,所以如果你使用一個,確保它是type="button"爲好。

$("#formSubmit").click(function(){ $(this).closest("form").submit() });