我正在处理自定义提示框。到目前为止,我使用了一个隐藏的div,使用javascript按钮显示:
function openPromptBox() {
var pos = FindXY(document.promptForm);
var cont = $('promptContainer');
var searchBox = $('promptBox');
searchBox.style.left = (pos.x - 20) + "px";
searchBox.style.top = (document.body.scrollTop + 100) + "px";
cont.style.display = "block";
}
这是div:
<div id="promptContainer">
<div id="promptBox">
<table>
<tr>
<td colspan="2">
<input type="text" name="result" id="result" size="25"/>
</td>
</tr>
<tr>
<td>
<input type="button" id="btnOK" value="OK" />
</td>
<td>
<input type="button" id="btnCancel" value="Cancel" />
</td>
</tr>
</table>
</div>
</div>
现在,只要点击openPromptBox
按钮,我就需要返回文本框result
的值btnOK
。有没有办法做到这一点?
答案 0 :(得分:-1)
好像你正在使用jquery所以这里是一个解决方案:
$('#btnOK').on('click', function() {
openPromptBox($('#result').val());
});
将从输入中取出当前值(文本/数字/等)
现在你可以简单地将它传递给你的函数:
function openPromptBox(textFromInput){
alert(textFromInput);
}
那就是它。
在函数的定义中,您应该添加一个参数,然后在函数中使用该参数:
document.getElementById("result").value
JSFiddle:https://jsfiddle.net/01bkkgzd/2/
<强>更新强>
没有JQuery,它将是:
document.getElementById("btnOK").addEventListener('click', function() {
openPromptBox(document.getElementById("result").value);
});
将获得输入值
onclick动作示例和以下函数调用
// Any extra properties you need
var requestedProperties = null
// The magic happens here, "e0cbf06c-cd8b-4647-bb8a-263b43f0f974" is
// the GUID for any Bluetooth device.
var selector = "(System.Devices.Aep.ProtocolId:=\"{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}\")"
// Then run findAllAsync with these new filters
deviceInfo.findAllAsync(selector, requestedProperties).then(function(devices) {
// Your code here
}
JSFiddle:https://jsfiddle.net/01bkkgzd/5/
答案 1 :(得分:-1)
不,这是不可能的。
prompt
打开模态对话框并阻止所有进一步的JavaScript(以及与页面的交互),直到用户激活其中一个按钮。
当您将表单字段插入HTML文档时,没有阻止(也不会阻止,因为这会阻止用户填写表单)。
您需要将事件侦听器绑定到您创建的表单字段,然后像处理任何其他asynchronous operation一样处理前进的响应。