2015-02-09 59 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() });