Javascript 如何查找触发表单提交事件的键
我有一个包含多个字段的表单,但只有一个必填字段。当填写必填字段并按下Enter键时,将出现问题,表单将被提交 如果在文本区域内按Enter键,则没有问题,但对于文本框,表单将被提交 我想下面是一个解决办法Javascript 如何查找触发表单提交事件的键,javascript,jquery,Javascript,Jquery,我有一个包含多个字段的表单,但只有一个必填字段。当填写必填字段并按下Enter键时,将出现问题,表单将被提交 如果在文本区域内按Enter键,则没有问题,但对于文本框,表单将被提交 我想下面是一个解决办法 订阅podio表格提交活动 查找导致表单提交的键 如果表单提交由Enter键触发,则阻止默认操作 现在我正在使用下面的方法 $("form").bind("keypress", function (e) { if (e.keyCode == 13) {
- 订阅podio表格提交活动
- 查找导致表单提交的键
- 如果表单提交由Enter键触发,则阻止默认操作
$("form").bind("keypress", function (e) {
if (e.keyCode == 13) {
e.preventDefault();
}
});
它工作得很好。但是有没有办法在表单提交事件中做到这一点呢?旧答案:
<table><form>
<tr>
<td>First Name:
</td>
<td><input type='text' id='txtFName'/ >
</td>
</tr>
<tr>
<td>Last Name:
</td>
<td><input type='text' id='txtLName'/ >
</td>
</tr>
<tr>
<td>Age:
</td>
<td><input type='text' id='txtAge'/ >
</td>
</tr>
<tr>
<td>Email:
</td>
<td><input type='text' id='txtEmail'/ >
</td>
</tr>
<tr>
<td colspan="2" style='text-align:center;'><input type="submit" id="btnSubmit" value=" Submit ">
</td>
</tr>
</form>
</table>
$(document).ready(function() {
$('form').submit(function(e) {
var isValid = true;
var allow = false;
$('input[type="text"]').each(function() {
if ($.trim($(this).val()) == '') {
isValid = false;
$(this).css({
"border": "1px solid red",
"background": "#FFCECE"
});
}
else {
$(this).css({
"border": "",
"background": ""
});
}
});
if (isValid == false){
if(!confirm('Few Fields are empty! Are you sure want to continue?')){
e.preventDefault();
} else {
alert('Thank you for submitting');
}
}
else
alert('Thank you for submitting');
});
});
var键={
输入:13
};
$('form')。关于('submit',函数(e){
e、 预防默认值();
如果(选中全部必填字段已定义()){
$(this)[0].submit();//调用本机事件,因为调用jquery事件会让您反复使用同一个函数
}
});
函数checkIfallRequiredFieldsRefilled(){
//如果检查比较复杂,请在这里进行检查。否则只需在if子句中进行检查
返回true;
}
在前面的答案中看到您的评论后,您可以像这样验证您的表单
HTML:
<table><form>
<tr>
<td>First Name:
</td>
<td><input type='text' id='txtFName'/ >
</td>
</tr>
<tr>
<td>Last Name:
</td>
<td><input type='text' id='txtLName'/ >
</td>
</tr>
<tr>
<td>Age:
</td>
<td><input type='text' id='txtAge'/ >
</td>
</tr>
<tr>
<td>Email:
</td>
<td><input type='text' id='txtEmail'/ >
</td>
</tr>
<tr>
<td colspan="2" style='text-align:center;'><input type="submit" id="btnSubmit" value=" Submit ">
</td>
</tr>
</form>
</table>
$(document).ready(function() {
$('form').submit(function(e) {
var isValid = true;
var allow = false;
$('input[type="text"]').each(function() {
if ($.trim($(this).val()) == '') {
isValid = false;
$(this).css({
"border": "1px solid red",
"background": "#FFCECE"
});
}
else {
$(this).css({
"border": "",
"background": ""
});
}
});
if (isValid == false){
if(!confirm('Few Fields are empty! Are you sure want to continue?')){
e.preventDefault();
} else {
alert('Thank you for submitting');
}
}
else
alert('Thank you for submitting');
});
});
是否禁用form.submit并手动提交表单?当用户单击按钮并通过ajax发布时,可能是另一个解决您想要的问题的方法,无论您是想避免
TextBox-回车键
表单提交,还是想在按下TextBox-回车键
时识别键
?@NnN我想知道回车键是否导致表单提交事件中的表单提交。form.onsubmit()正在侦听表单的提交事件。问题是,我只有一个必填字段,所有其他字段都是非必填字段。因此,我无法确认客户机是否填写了他/她想要填写的所有字段。@akbaradhusha那么,只需检查所需的input
字段是否已填写(在checkifAllRequiredFieldsRefilled()
函数中),并返回正确的true
或false
即可,其余部分由代码完成。如果checkifAllRequiredFieldsRefilled()
返回true
它将提交公式。如果我的要求不明确,我很抱歉。我的问题是这样的。我有字段A、B、C和D,只有A是必需的。客户填写了A,然后填写了B,并意外按下了enter键。我们不能确定客户是否意外按下了enter键,或者他真的想提交表单。所以我想要阻止表单在回车时提交。希望这次我能说清楚。