我正在使用jquery对话框在表单完成期间显示消息。除最后一个对话框外的所有对话框似乎都有效最后一个显示,但“X”没有出现,框自动解散,表格提前提交。
不完整对话框的示例如下: http://www.bbhq.com/dbox.htm
(表格必须在“X”图像有时间显示之前提交。)
我正在使用jquery-1.10.1。
我认为这可能是一个jquery问题。当我用简单的“警报”替换jquery对话框时,它可以工作。
这是JavaScript:
function valdata() {
alert ("watch closely; dialog box will pop up; dismiss automatically; and form will submit")
$("<div title='Basic dialog onclick'>made simple b4 submit</div>").dialog();
return
这是html:
<FORM NAME="mainform" METHOD="POST" ACTION="http://www.bbhq.com/dummy.htm"
onSubmit="return valdata()" >
<a href="#" onclick="alertok('see, it works here')">test dialog box here</a><p>
1. this is question 1.
<input type=text name=ques1><p>
2. this is question 1.
<input type=text name=ques2><p>
3. this is question 1.
<input type=text name=ques3><p>
<INPUT TYPE="submit" VALUE=" Click here to submit the form ">
</FORM>
在onSubmit代码中,我尝试过它,有没有“返回”。
我尝试删除onsubmit,并用一个调用该函数的按钮替换输入提交,然后提交表单。结果是一样的。
我的示例在这里:http://www.bbhq.com/tmp-form.htm (对不起;我不能让jsfiddle为我工作。)
我是jquery的新手,但我设计了几十种形式。我错过了一些明显的东西吗?
谢谢,
答案 0 :(得分:0)
而不是在表单上添加onsubmit属性,将其添加到您的页面:
$(document).ready(function() {
$('form[name="mainform"]').submit(function(e) {
e.preventDefault();
e.stopImmediatePropagation();
valdata();
return false;
});
});
它的作用:
1)等待dom加载:
$(document).ready(function() {
2)将提交处理程序绑定到表单:
$('form[name="mainform"]').submit(function(e) {
3)停止发生默认浏览器行为(即:遵循表单上的属性操作
e.preventDefault();
4)阻止事件冒泡调用堆栈
e.stopImmediatePropagation();
5)调用你的函数
valdata();
6)返回false以防止表单提交(返回true以允许表单提交)
return false;