JQuery:如何在发送表单之前执行代码
JQuery: how to execute code before sending a form
我制作了一个表单并将其 attr 设置为 onsubmit="return false"
现在我需要在实际提交之前执行一些操作,如下所示:
$('input[name=submit]').click(function(){
$('.switch-input').attr('checked','checked');//getting all values of chbz
//here goes a little more code//
$('form[name=setform]').removeAttr('onsubmit');//finally sending to $_POST
});
乍一看一切正常,但我想知道它会在发送前 100% 执行所有代码还是我做错了?
onsubmit="return false"
属性将阻止表单像往常一样提交。但是,当用户单击"提交"输入时,上述代码段将执行一次,删除onsubmit
属性并使表单能够正常提交,但用户必须再次单击"提交"才能提交。
您可以保留现有的代码段,并告诉 jQuery 通过 .submit()
方法的第三个变体显式提交表单:
$('input[name=submit]').click(function(){
$('.switch-input').attr('checked','checked');//getting all values of chbz
//here goes a little more code//
$('form[name=setform]').removeAttr('onsubmit');//make the form submittable
$('form[name=setform]').submit();//finally sending to $_POST
});
或者,您可以删除 onsubmit="return false"
属性,并使用该方法的.submit(handler)
变体,这简化了代码并保证处理程序将在提交表单之前执行:
$('form[name=setform]').submit(function(){
$('.switch-input').attr('checked','checked');//getting all values of chbz
//here goes a little more code//
});
您可以考虑关闭 onsubmit
属性,而是使用您的.click()
代码,并在末尾输入 return false。您也可以按照 Stiliyan 的建议使用.submit()
。
相关文章:
- HTML表单提交时未执行外部函数
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- HTML表单-按'时执行脚本;输入',无需提交
- 如何停止javascript的执行并允许用户保存表单
- 使用html 5对元素执行自定义表单验证功能
- 对表单输入执行计算
- 在引导程序中从 HTML 表单执行 Python (CGI) 文件.带有Apache Server的JS
- 在表单同步提交后执行 js 吗?
- 表单的“操作”和“提交”:哪个先执行
- “表单操作”和“点击时提交表单”都将执行
- 带有远程 => true 的 Rails 表单提交 -- JS 文件呈现但不执行
- 如何在Safari提交表单之前执行JQuery
- 表单以执行两个不同的操作
- 未执行Ajax隐藏表单提交验证
- 带有两个提交按钮的提交表单,每个按钮执行不同的操作问题
- 是否有可能通过一个按钮提交两个表单,然后两个表单执行两个不同的操作
- 隐藏第一个窗体,然后显示第二个窗体.Secnd表单执行多次提交
- 对按钮单击表单执行 2 个操作