使用javascript和CSS自定义提示框

时间:2016-09-02 18:29:42

标签: javascript css

我正在处理自定义提示框。到目前为止,我使用了一个隐藏的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。有没有办法做到这一点?

2 个答案:

答案 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一样处理前进的响应。