【发布时间】:2017-10-10 18:37:18
【问题描述】:
我正在使用 Kube CSS & JS framework (6.5.2) 中的模态框,其中包含一个表单。当我按 Enter 时,模式关闭而不提交表单。
编辑:当专注于密码或搜索输入时,这不会发生 - 将类型从“文本”更改为“密码”可以解决问题。
<!DOCTYPE html>
<html>
<head>
<title>Basic Template</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Kube CSS -->
<link rel="stylesheet" href="dist/css/kube.css">
</head>
<body>
<h1>Hello, world!</h1>
<div id='ui-modal-test' class='modal-box hide'>
<div class='modal' style='width:95%'>
<span class='close'></span>
<div class='modal-header'>Modal Form Test</div>
<div class='modal-body'>
<form id="ui-modal-form">
<input type="text" name="field1">
<input type="text" name="field2">
<input type="text" name="field3">
<button>Apply</button>
</form>
</div>
</div>
</div>
<button data-component="modal" data-target="#ui-modal-test">Open</button>
<!-- Kube JS + jQuery are used for some functionality, but are not required for the basic setup -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="dist/js/kube.js"></script>
</body>
</html>
JS:
$('#ui-modal-form').on('submit', function(event){
event.preventDefault(); // modal still closes before submitting form
var field1 = $(this).find('input[name=field1]').val().toLowerCase();
var field2 = $(this).find('input[name=field2]').val();
var field3 = $(this).find('input[name=field3]').val();
$.post('/post.php', {
field1: field1,
field2: field2,
field3: field3,
}, function(response){
var response = JSON.parse(response);
});
});
我希望当用户在任何输入上按 Enter 键时提交表单,而不关闭模式框。
【问题讨论】:
-
我在我的电脑上复制了同样的东西,似乎工作得很好。我可以提交并查看来自后端的响应。当光标在任何字段上时,我可以提交。
-
奇怪,我已经在 Chrome、FF 和 IE 中测试过了。都一样...您是否使用 enter 提交?
-
是的,我用鼠标和输入都试过了
-
嗯,一定有什么不同。您使用的是什么版本的 Kube 和 jQuery?我刚刚下载了最新版本,遇到了同样的问题。
-
我已经在没有 Kube 的情况下完成了,只是用 jquery 来查看提交是否正在发生
标签: javascript jquery html css