Javascript引导盒,can';t获取按钮以单击回车键
当我打开引导框时,输入信息,然后按enter键,它将关闭引导框并滚动回页面顶部。(它没有按“创建”按钮或“取消”按钮)。我已尝试将classname更改为btn primary。这没用 代码如下:Javascript引导盒,can';t获取按钮以单击回车键,javascript,bootbox,Javascript,Bootbox,当我打开引导框时,输入信息,然后按enter键,它将关闭引导框并滚动回页面顶部。(它没有按“创建”按钮或“取消”按钮)。我已尝试将classname更改为btn primary。这没用 代码如下: bootbox.dialog({ title: 'Create a new bucket', message: '<div class="row"> ' + '<div class="col-md-12"
bootbox.dialog({
title: 'Create a new bucket',
message:
'<div class="row"> ' +
'<div class="col-md-12"> ' +
'<form class="form-horizontal"> ' +
'<div class="form-group"> ' +
'<label class="col-md-4 control-label" for="bucketName">Bucket Name</label> ' +
'<div class="col-md-8"> ' +
'<input id="bucketName" name="bucketName" type="text" placeholder="Enter bucket name" class="form-control" autofocus> ' +
'<div>' +
'<span id="bucketModalErrorMessage" ></span>' +
'</div>'+
'</div>' +
'</div>' +
'<div class="form-group"> ' +
'<label class="col-md-4 control-label" for="bucketLocation">Bucket Location</label> ' +
'<div class="col-md-8"> ' +
'<select id="bucketLocation" name="bucketLocation" class="form-control"> ' +
generateBucketOptions(self.settings.bucketLocations) +
'</select>' +
'</div>' +
'</div>' +
'</form>' +
'</div>' +
'</div>',
buttons: {
cancel: {
label: 'Cancel',
className: 'btn-default'
},
confirm: {
label: 'Create',
className: 'btn-success',
callback: function () {
var bucketName = $('#bucketName').val();
var bucketLocation = $('#bucketLocation').val();
if (!bucketName) {
var errorMessage = $('#bucketModalErrorMessage');
errorMessage.text('Bucket name cannot be empty');
errorMessage[0].classList.add('text-danger');
return false;
} else if (!isValidBucketName(bucketName, false)) {
bootbox.confirm({
title: 'Invalid bucket name',
message: 'Amazon S3 buckets can contain lowercase letters, numbers, and hyphens separated by' +
' periods. Please try another name.',
callback: function (result) {
if (result) {
self.openCreateBucket();
}
},
buttons: {
confirm: {
label: 'Try again'
}
}
});
} else {
self.createBucket(bucketName, bucketLocation); //THIS IS IMPORTANT
}
}
}
}
});
bootbox.dialog({
标题:“创建一个新bucket”,
信息:
' ' +
' ' +
' ' +
' ' +
“Bucket Name”+
' ' +
' ' +
'' +
'' +
''+
'' +
'' +
' ' +
“铲斗位置”+
' ' +
' ' +
generateBucketOptions(self.settings.bucketLocations)+
'' +
'' +
'' +
'' +
'' +
'',
按钮:{
取消:{
标签:“取消”,
类名:“btn默认值”
},
确认:{
标签:“创建”,
类名:“btn成功”,
回调:函数(){
var bucketName=$('#bucketName').val();
var bucketLocation=$('#bucketLocation').val();
如果(!bucketName){
var errorMessage=$('bucketModalErrorMessage');
errorMessage.text('Bucket name不能为空');
errorMessage[0]。类列表。添加('text-danger');
返回false;
}如果(!isValidBucketName(bucketName,false))为else{
bootbox.confirm({
标题:“无效的存储桶名称”,
消息:“AmazonS3存储桶可以包含小写字母、数字和连字符,以分隔”+
“句号,请改名。”,
回调:函数(结果){
如果(结果){
self.openCreateBucket();
}
},
按钮:{
确认:{
标签:“重试”
}
}
});
}否则{
createBucket(bucketName,bucketLocation);//这很重要
}
}
}
}
});
})) 下面是一个带有确认对话框的示例
var dialog = bootbox.confirm({ ... });
//https://github.com/makeusabrew/bootbox/issues/411
dialog.on("shown.bs.modal", function () {
dialog.attr("id", "dialog-1");
});
//https://stackoverflow.com/questions/26328539/bootbox-make-the-default-button-work-with-the-enter-key
$(document).on("submit", "#dialog-1 form", function (e) {
e.preventDefault();
$("#dialog-1 .btn-primary").click();
});
如果您使用的是prompt(但此解决方案在其他情况下应该很有用)
这是实现此功能的最简单方法
var input = document.getElementsByClassName("CLASS OF INPUT YOU WANT TO CHOOSE");
input[0].addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode === 13) {
var click = document.getElementsByClassName("CLASS OF BUTTON YOU WANT TO PRESS");
click[0].click();
}
});
我还没有找到一种方法将ID分配给bootbox中的元素,但是分配类是可能的。当然,您不能像使用ID选择元素那样选择类,所以您必须做的是按类获取元素,这将创建数组,即使您只有所述类的一个元素。因此,必须在数组中选择正确的元素。在我的例子中是[0]。选择指定的键,然后使用按钮重复相同的过程
如果您仔细遵守我的说明,您应该能够使用键提交数据。我不希望它滚动到页面顶部,我试图让它在按enter键时只需单击“创建”按钮。我也不确定我将把它放在我的代码中的什么地方,因为我在一个引导框中。
var input = document.getElementsByClassName("CLASS OF INPUT YOU WANT TO CHOOSE");
input[0].addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode === 13) {
var click = document.getElementsByClassName("CLASS OF BUTTON YOU WANT TO PRESS");
click[0].click();
}
});