我制作了一个简单的演示,其中我限制弹出屏幕不要在后退按钮按下时关闭。但是我能够这样做但是当我在文本字段上写东西时我无法删除文本。 我们可以做两件事吗?意味着限制弹出屏幕以及从文本字段中删除文本?
<!DOCTYPE html>
<html>
<head>
<link href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>Welcome To My Homepage</h1>
</div>
<div data-role="main" class="ui-content">
<a href="#myPopup" data-rel="popup" class="ui-btn ui-btn-inline ui-corner-all">Show Popup</a>
<div data-role="popup" id="myPopup" data-dismissible='false'>
<div data-role="fieldcontain">
<label for="testCaseIDValue">TestCase Name:</label>
<input type="text" name="testCaseIDValue" id="testCaseInnerIDValue" value="" class="inputTextTestCase"/>
</div>
<a href="#" data-role="button" id="doneInnerPopUp" class="common-button">Done</a>
</div>
<div data-role="footer">
<h1>Footer Text</h1>
</div>
</div>
</body>
</html>
js Code
$('body').keydown(function(e) {
if($('#myPopup').is(':visible')) {
if(e.keyCode == 8) { // 8 is backspace
e.preventDefault();
}
}
});
答案 0 :(得分:2)
您可以尝试创建input
类型的隐藏reset
假设它有id
clearIt
你可以说:
$('body').keydown(function(e) {
if($('#myPopup').is(':visible')) {
if(e.keyCode == 8) { // 8 is backspace
$('#clearIt').trigger("click");
}
}
});
它会在表单
时重置输入文字答案 1 :(得分:1)
您刚刚为整个文档(在您的案例正文中)禁用了退格键,包括输入内容。
为了不影响输入,您可以检查它是否是条件
$(document).on('keydown', function(e) {
if(
$('#myPopup').is(':visible') &&
(!$('#myPopup input').is(':focus')) &&
e.which === 8
) {
e.preventDefault();
}
});