函数中的 .submit() 工作 2 次
.submit() in function works for 2 times
这是我的代码
.HTML
<form class="vfr-validate"
id="intl-numbers-list-form" action="${formAction}" method="post">
<div id="ion_error_non_eligible_chooser">
<c:if test="${errorNonEligibleChooser == 'true'}">
<p>
<fmt:message key='com.vodafone.wlportal.portlet.ion.non.eligible.postpaid.crmt' bundle='${current_bundle}'/>
</p>
<br>
<a href="" class="btn btn-primary mr20">Vezi Oferte</a>
</c:if>
</div>
<div class="col-md-3">
<input id="input_phone_no" class="required width100 pull-left mb10 mobile_international"
type="text" maxlength="10"
value="" name="phone_no">
</div>
<div class="col-md-3">
<c:choose>
<c:when test="${fn:length(requestScope.listFnF) >= listFnFMax || errorNonEligibleChooser == 'true'}">
<button disabled="disabled" class="btn btn-primary disabled" id="ion_add"
data-wa="true"
data-wa-type="portlet"
data-wa-portlet-name='<fmt:message key="com.vodafone.wlportal.portlet.ion.wa.data.wa.portlet.name" bundle="${global_properties_bundle }"/>'
data-wa-portlet-facet='<fmt:message key="com.vodafone.wlportal.portlet.ion.wa.data.wa.portlet.facet.web" bundle="${global_properties_bundle }"/>'
data-wa-portlet-action='<fmt:message key="com.vodafone.wlportal.portlet.ion.wa.data.wa.portlet.action.add" bundle="${global_properties_bundle }"/>'
>
<fmt:message key="com.vodafone.wlportal.portlet.ion.add.fnf" bundle="${current_bundle}" />
</button>
</c:when>
<c:otherwise>
<button class="btn btn-primary browserion" id="ion_add"
onclick="return addFNFAction();"
data-wa="true"
data-wa-type="portlet"
data-wa-portlet-name='<fmt:message key="com.vodafone.wlportal.portlet.ion.wa.data.wa.portlet.name" bundle="${global_properties_bundle }"/>'
data-wa-portlet-facet='<fmt:message key="com.vodafone.wlportal.portlet.ion.wa.data.wa.portlet.facet.web" bundle="${global_properties_bundle }"/>'
data-wa-portlet-action='<fmt:message key="com.vodafone.wlportal.portlet.ion.wa.data.wa.portlet.action.add" bundle="${global_properties_bundle }"/>'
>
<fmt:message key="com.vodafone.wlportal.portlet.ion.add.fnf" bundle="${current_bundle}" />
</button>
</c:otherwise>
</c:choose>
</div>
</div>
</form>
JS函数
function addFNFAction() {
//console.log("addFNFAction");
var form = $("#intl-numbers-list-form");
if (form.valid() == true) {
$('#ion_loader').show();
$('#ion_add').attr("disabled", true);
form.submit();
}
}
问题是在IE 11上,表单提交2次。我尝试以 2 种方式onclick
onclick="return addFNFAction();"
并且onclick="addFNFAction();"
,结果与 2 种提交相同。
基本上,浏览器正在执行表单提交,然后您的点击处理程序再次提交表单。您应该删除 onclick 处理程序 on 按钮,并将 onsubmit 处理程序添加到表单标记中。
试试这个作为你的开始表格标签:-
<form class="vfr-validate" id="intl-numbers-list-form" onSubmit=addFNFAction method="post">
您需要将JS函数更改为:-
function addFNFAction(event) {
//console.log("addFNFAction");
event.preventDefault();
var form = $("#intl-numbers-list-form");
if (form.valid() == true) {
$('#ion_loader').show();
$('#ion_add').attr("disabled", true);
form.submit();
}
}
这是因为您正在调用 jQuery 的提交方法,该方法再次调用提交处理程序。这可能会导致对提交处理程序的递归调用
而是尝试调用 dom 的 submit
方法,还需要从处理程序返回 false
以停止按钮单击的默认操作;
function addFNFAction() {
//console.log("addFNFAction");
var form = $("#intl-numbers-list-form");
if (form.valid() == true) {
$('#ion_loader').show();
$('#ion_add').attr("disabled", true);
form[0].submit();
}
return false;
}
相关文章:
- Javascript form.submit()方法是如何工作的
- 函数中的 .submit() 工作 2 次
- jQuery函数.submit()不工作
- $(“#submit”).单击不工作:/
- 链接.add和.submit在IE中无法按预期工作
- 如何使 Twitter 引导 .popover 在 .submit 事件中工作
- $(“#form”).submit();未按预期工作
- AngularJS ng-submit无法在手风琴标签内工作
- Submit()函数不工作
- 为什么' submit '事件监听器不能在submit按钮上工作?
- 多个onchange =“this.form.submit()“;在一页不工作
- 我怎么能得到表单验证工作时,使用"共享"按钮(而不是“submit”类型的输入元素)
- Ajax成功函数在$("#form_id").submit()之前不能工作
- 输入类型=“file".submit()不工作IE8
- Jquery Form.submit()在Chrome上工作,但在Firefox中不工作
- Angularjs - form ng-submit不能与动态生成的form html一起工作
- 使用document.getElementById(formName).submit()在FireFox中不工作,在Ch
- jquery美元.Post被服务器拒绝,但是$(form).submit()工作
- 使用外部Submit按钮提交两个不同的表单不能正常工作
- 为什么form.submit()不工作?