Alertify Prompt - 允许用户输入值并提交表单

时间:2015-08-03 06:07:31

标签: javascript jquery alertify

使用alertify - version 0.3.11,我可以获取用户输入详细信息,并能够在提示对话中显示它。但我有多个价值观。用户输入,下拉值,日期选择等

var totalResources = jQuery('#grid').jqGrid('getGridParam', 'selarrrow');

//set custom button title for Form Submit
    alertify.set({ labels: {
        ok     : "Submit Data",
        cancel : "Cancel"
    } });


    //fetch user input comment
    alertify.prompt("Please enter note/remarks for this Form :<br/>Total Resource(s): <strong>"+totalResources.length+"</strong>", function (e,value) {


if (e) {
    alertify.success("Data has been submitted");

            //encodes special characters remarks
            var sow = encodeURIComponent(value);

            $.post(SITE_URL+"somecontroller/someaction",$("#frm_submit").serialize()+ "&resource_ids="+resource_ids+"&sow="+sow, function( data ) {
            });


    }else{
            alertify.error("Your Data is not submitted");
    }
});

类似于下图中显示的

enter image description here

我如何使用alertify构建模态表单,用户可以在其中查看预先提供的详细信息并输入其详细信息并提交?

2 个答案:

答案 0 :(得分:2)

他们在Alertify中添加了表单功能。看看this

从他们的网站代码如下: -

<!-- the form to be viewed as dialog-->
<form id="loginForm">
    <fieldset>
        <label> Username </label>
        <input type="text" value="Mohammad"/> 

        <label> Password </label>
        <input type="password" value="password"/> 

        <input type="submit" value="Login"/>
    </fieldset>
</form>

和JS代码: -

alertify.genericDialog || alertify.dialog('genericDialog',function(){
    return {
        main:function(content){
            this.setContent(content);
        },
        setup:function(){
            return {
                focus:{
                    element:function(){
                        return this.elements.body.querySelector(this.get('selector'));
                    },
                    select:true
                },
                options:{
                    basic:true,
                    maximizable:false,
                    resizable:false,
                    padding:false
                }
            };
        },
        settings:{
            selector:undefined
        }
    };
});
//force focusing password box
alertify.genericDialog ($('#loginForm')[0]).set('selector', 'input[type="password"]');

答案 1 :(得分:-2)

这实际上超出了Alertify的范围。它只是不支持这种功能。它被设计为替代典型的浏览器内置函数,如confirm()alert()

您可能想查看其他插件。特别是因为你正在使用jQuery,所以找到适合你的东西并不是很难。搜索jQuery灯箱或模态可能会出现具有您正在寻找的功能的东西。

一个选项可能是Fancybox。在那里有一个登录表单的演示,它做了类似的事情。我从未使用Fancybox,因此您的里程可能会有所不同,但有很多不同的选择。