Javascript 使用modal作为提交确认
问题是如果我将代码改为reset而不是submit..它可以用于resetJavascript 使用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
$('#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();
});