【问题标题】:How to validate inputs inside form and submit button outside the form如何验证表单内的输入并在表单外提交按钮
【发布时间】:2016-09-30 04:42:56
【问题描述】:

根据要求,我正在尝试验证表单。

实际上,我在引导框模式对话框中传递表单输入元素,并在模式对话框中动态传递提交按钮。

当输入类型=提交时,它能够验证表单输入。但是当我以模式传递它时,表单内没有提交按钮,它无法验证表单。 例如:

<form id="form_id">
Name:<input type="text" required>
<input type="submit" value="Submit">
</form>

$("#form_id").submit(function(e)){
//validation is ok
return false;
}

这没关系,但是, 现在处于模态:

    var data="<form id="form_id">
    Name:<input type="text" required>
    </form>"; //getting from server

            $.ajax({
            url : 'url',
            type : 'get',
            async : true,
            data : data,
            success : function(data) {
                modalDialog = bootbox.dialog({
                    size : 'large',
                    title : "Title"
                    show : false,
                    message : data,
                    buttons : {
                        success: {
                            label : "Close window",
                            className : "btn-default",
                            callback : function() {
  return false;
        //after clicking submit button it should ask required if no data input,and stay in dialog as what happened previous scenario.But dialog is closed.

                            }
                        }
                    }
                });
                modalDialog.on('shown.bs.modal', function() {
                });

                modalDialog.modal('show');

            }

        });

【问题讨论】:

标签: javascript jquery validation bootstrap-modal bootbox


【解决方案1】:

这样试试

在 html 中添加所需的输入类型

 <form id="frmPlate">
    <input type="text" name="Name" required="required" />
</form>
<button type="submit" onclick="CheckValidation();"> Submit</button>

您可以像下面的代码一样在 jquery 中进行验证

function CheckValidation(){
    var frmvalid = $("#frmPart").valid();
    if (!frmvalid) {
        return false;
    }
}

【讨论】:

  • 以前我没有使用 jquery 验证器插件。现在我添加了,它工作正常。答案已接受。
【解决方案2】:

当所有条件都满足时,使用 JavaScript 提交表单。

document.getElementById('form_id').submit();

或者在jquery中

("#'form_id'").submit();

现在这是您添加了“提交”的代码

    var data="<form id="form_id">
Name:<input type="text" required>
</form>"; //getting from server

        $.ajax({
        url : 'url',
        type : 'get',
        async : true,
        data : data,
        success : function(data) {
            modalDialog = bootbox.dialog({
                size : 'large',
                title : "Title"
                show : false,
                message : data,
                buttons : {
                    success: {
                        label : "Close window",
                        className : "btn-default",
                        callback : function() {

("#'form_id'").submit();
  return false;
        //after clicking submit button it should ask required if no data input,and stay in dialog as what happened previous scenario.But dialog is closed.

                        }
                    }
                }
            });
            modalDialog.on('shown.bs.modal', function() {
            });

            modalDialog.modal('show');

        }

    });

【讨论】:

  • 以前我是这样做的,但是朋友说一次提交你要创建两个按钮?所以我已经发布了查询。我用 id 隐藏了提交,点击外部按钮后,我触发了提交。
  • 我认为您不需要真正的提交按钮(表单内的一个)即可使上述代码正常工作。
  • 我的意思是即使没有 '" 你也可以强制提交。
  • 但是第二个没有 $("#form_id").submit(function(e)){});只有ajax之类的操作。那么如何进行验证呢?
猜你喜欢
  • 2016-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-12
  • 2011-11-04
相关资源
最近更新 更多