首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获取类似于浏览器提示中的输入值

如何获取类似于浏览器提示中的输入值
EN

Stack Overflow用户
提问于 2018-12-30 14:06:15
回答 2查看 41关注 0票数 0

我需要创建我自己的prompt功能。

在下面的示例中,我如何说:

代码语言:javascript
运行
复制
var x = my_prompt('DO SOMETHING');
console.log(x);

因此,单击btnb,我需要在单击btna之后派生的inputxt的值。

代码语言:javascript
运行
复制
$('#btnb').on('click', function(){
my_prompt('DO SOMETHING');
});

function my_prompt(info){
$('#dginfo').text(info);
$('#dialog').show();
$('#inputxt').focus();
}
代码语言:javascript
运行
复制
.dialog{
display:none;
position:fixed;
width:50%;
left:25%;
top:25px;
background:gold;
}
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='dialog' id='dialog'>
<div id='dginfo'></div>
<input type='text' class='inputxt' id='inputxt'>
<button id='btna'>OK</div>
</div>

<button id='btnb'>CLICK</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-30 14:10:24

一种选择是将回调传递给my_prompt,单击按钮时将调用该回调:

代码语言:javascript
运行
复制
$('#btnb').on('click', function() {
  my_prompt('DO SOMETHING', (x) => {
    console.log('input entered: ' + x);
  });
});

function my_prompt(info, callback) {
  $('#dginfo').text(info);
  $('#dialog').show();
  $('#inputxt').focus();
  $('#btna').on('click', () => {
    callback($('#inputxt').val());
    $('#btna').off('click');
    $('#dialog').hide();
  });
}
代码语言:javascript
运行
复制
.dialog {
  display: none;
  position: fixed;
  width: 50%;
  left: 25%;
  top: 25px;
  background: gold;
}
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='dialog' id='dialog'>
  <div id='dginfo'></div>
  <input type='text' class='inputxt' id='inputxt'>
  <button id='btna'>OK</div>
</div>

<button id='btnb'>CLICK</div>

enter添加额外的监听器

代码语言:javascript
运行
复制
$('#btnb').on('click', function() {
  my_prompt('DO SOMETHING', (x) => {
    console.log('input entered: ' + x);
  });
});

$('#inputxt').on('keypress', ({ keyCode }) => {
  if (keyCode === 13) {
    $('#btna').click();
  }
});
function my_prompt(info, callback) {
  $('#dginfo').text(info);
  $('#dialog').show();
  $('#inputxt').focus();
  $('#btna').on('click', () => {
    callback($('#inputxt').val());
    $('#btna').off('click');
    $('#dialog').hide();
  });
}
代码语言:javascript
运行
复制
.dialog {
  display: none;
  position: fixed;
  width: 50%;
  left: 25%;
  top: 25px;
  background: gold;
}
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='dialog' id='dialog'>
  <div id='dginfo'></div>
  <input type='text' class='inputxt' id='inputxt'>
  <button id='btna'>OK</div>
</div>

<button id='btnb'>CLICK</div>

票数 1
EN

Stack Overflow用户

发布于 2018-12-30 14:15:32

只需将一个变量赋给my_prompt的返回值,并添加一个事件侦听器即可完成此操作:

代码语言:javascript
运行
复制
$('#btnb').on('click', function() {
  var data = my_prompt('DO SOMETHING');
});

function my_prompt(info) {
  $('#dginfo').text(info);
  $('#dialog').show();
  $('#inputxt').focus();
  return $("#btna").on("click", function() {
    return $("#inputxt").val(); 
}
代码语言:javascript
运行
复制
.dialog {
  display: none;
  position: fixed;
  width: 50%;
  left: 25%;
  top: 25px;
  background: gold;
}
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class='dialog' id='dialog'>
  <div id='dginfo'></div>
  <input type='text' class='inputxt' id='inputxt'>
  <button id='btna'>OK</div>
</div>

<button id='btnb'>CLICK</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53975622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档