Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用modal作为提交确认_Javascript_Jquery_Html_Twitter Bootstrap - Fatal编程技术网

Javascript 使用modal作为提交确认

Javascript 使用modal作为提交确认,javascript,jquery,html,twitter-bootstrap,Javascript,Jquery,Html,Twitter Bootstrap,问题是如果我将代码改为reset而不是submit..它可以用于reset $('#formTest').submit(function(e) { e.preventDefault(); $('#bondModal').modal('show'); $("#accept").click(function(e) { $("#formTest").submit(); e.preventDefault(); $('#bondM

问题是如果我将代码改为reset而不是submit..它可以用于reset

$('#formTest').submit(function(e) {

e.preventDefault();
    $('#bondModal').modal('show');

        $("#accept").click(function(e) {
        $("#formTest").submit();
        e.preventDefault();
        $('#bondModal').modal('hide');



}

        );
    } });

问题在于这一行:

$('#formTest').trigger('reset');
没有名为getElementbyname的函数。您似乎正在寻找返回节点列表的document.getElementsByName。在这种情况下:

document.getElementbyname("formTest").submit();
但是,您也可以使用document.forms数组:

最后,由于您的表单有一个ID,您也可以使用该ID:

document.forms["formTest"].submit();

你陷入了困境

启动操作时:

document.getElementById("formTest").submit();
您没有提交表单,因为您正在调用自己的函数以阻止默认操作:

 $("#formTest").submit();
如果您想使用当前的代码,可以执行以下两种操作之一:

在submit函数中使用一个,这样它只会触发一次。这将要求您在重置或取消时重新绑定

$('#formTest').submit(function(e) {
    e.preventDefault();
    //do stuff
});
或者在强制提交之前解除提交函数的绑定

$('#formTest').one('submit', function(e) {
    e.preventDefault();
    //do stuff
});
但是,我会采用另一种方式,将submit按钮从页面上可见的标记中移除。只需在表单中放置一个a标记,单击即可启动打开模式函数。然后,您不需要在代码中进行任何提交,您只需要在模式中使用标准的提交和重置按钮,它们执行默认行为:

标记:

$('#formTest').on('submit', function(e) {
    e.preventDefault();

    $("#accept").click(function(e) {
        $('#formTest').unbind('submit');
        $('#formTest').submit();
    });
});

简单得多。希望这能有所帮助。

在这里,您可以看到确认对话框示例。我认为这可能会发生,因为您对该表单的提交功能有过度的依赖。因此,不要凌驾于提交功能之上,而是尝试用相应的提交按钮的单击功能替换它,然后尝试执行正常的提交操作,如$'formTest'。在模态的单击功能中提交。你的代码中也有一个输入错误,应该是document.getElementsbynameGeorge,尝试浏览bootbox文档,在callbackVivek中找不到任何与提交相关的内容,你介意进一步详细说明吗?尝试用相应的提交按钮单击功能替换它“没什么运气,我尝试了getElementbyId,javascript控制台没有从我的答案中触发任何东西复制和粘贴,因为如果你正在使用getElementbyId,你会有另一个输入错误,B必须是大写。当问题在jQuery中时,为什么你的答案是标准JS?@DoubleA如果你想看一下原始问题,在OP编辑出纯JS之前,你会看到原因。
$('#formTest').submit(function(e) {
    e.preventDefault();
    //do stuff
});
$('#formTest').one('submit', function(e) {
    e.preventDefault();
    //do stuff
});
$('#formTest').on('submit', function(e) {
    e.preventDefault();

    $("#accept").click(function(e) {
        $('#formTest').unbind('submit');
        $('#formTest').submit();
    });
});
    <form>
        <input type="text">
        <a class="open-modal">Submit</a>

        <div class="modal">
            <h4 class="modal-title">Confirm?</h4>
            <p>Test</p>
            <input type="reset" class="btn btn-default">Cancel</button>
            <input type="submit" class="btn btn-primary">Accept</button>
        </div>
    </form>
    $('a.open-modal').on('click', function(e) {
        e.preventDefault();

        $('.modal').fadeIn();
    });