Javascript 表单提交时未调用函数
我已经把你所有的评论都记在黑板上了,并把代码改成下面的。但是,现在地址栏中的所有内容都以字符串结束,页面将刷新。我的代码是: 表格的一部分:Javascript 表单提交时未调用函数,javascript,jquery,forms,Javascript,Jquery,Forms,我已经把你所有的评论都记在黑板上了,并把代码改成下面的。但是,现在地址栏中的所有内容都以字符串结束,页面将刷新。我的代码是: 表格的一部分: <form class="inline" name="Form1"> <input class="inline" name="employeeid" id="employeeid" type="hidden" size="30" autofocus value="<?php echo $employee[$k]["employeei
<form class="inline" name="Form1">
<input class="inline" name="employeeid" id="employeeid" type="hidden" size="30" autofocus value="<?php echo $employee[$k]["employeeid"]; ?>" />
.... more fields here.....
<p class="inline">
<label class="inline" for="pensionindividual">Individual Pension:</label>
<input class="inline" id="pensionindividual" type="text" name="pensionindividual" size="30" value="<?php echo $employee[$k]["pensionindividual"]; ?>" />
</p>
<p class="inline">
<label class="inline" for="pensioncompany">Company Pension:</label>
<input class="inline" type="text" id="pensioncompany" name="pensioncompany" size="30" value="<?php echo $employee[$k]["pensioncompany"]; ?>" />
</p>
<input id="submit" type="submit" onclick="NewSearchFunction(e)" value="Update Details">
</td></tr></table></td></tr></table>
</form>
<script src="editemployeedetailsajax.js"></script>
<div id="mainform">
<div class="innerdiv">
<form class="inline" name="Form1">
<p class="inline">
<label class="inline" for="pensioncompany">Company Pension:</label>
<input class="inline" type="text" name="pensioncompany" size="30" value="<?php echo $employee[$k]["pensioncompany"]; ?>" />
</p>
<input id="submit" type="button" onclick="myFunction()" value="Update Details">
</td></tr></table></td></tr></table>
</form>
您好,当我提交表单时,请使用“提交”附加的功能
按钮不会被调用。表单位于一个div中,该div是
由ajax根据用户在另一个分区中的选择检索
javascript在第一页的页眉中被引用-我不是
当然,如果这是问题所在
表格的一部分:
<form class="inline" name="Form1">
<input class="inline" name="employeeid" id="employeeid" type="hidden" size="30" autofocus value="<?php echo $employee[$k]["employeeid"]; ?>" />
.... more fields here.....
<p class="inline">
<label class="inline" for="pensionindividual">Individual Pension:</label>
<input class="inline" id="pensionindividual" type="text" name="pensionindividual" size="30" value="<?php echo $employee[$k]["pensionindividual"]; ?>" />
</p>
<p class="inline">
<label class="inline" for="pensioncompany">Company Pension:</label>
<input class="inline" type="text" id="pensioncompany" name="pensioncompany" size="30" value="<?php echo $employee[$k]["pensioncompany"]; ?>" />
</p>
<input id="submit" type="submit" onclick="NewSearchFunction(e)" value="Update Details">
</td></tr></table></td></tr></table>
</form>
<script src="editemployeedetailsajax.js"></script>
<div id="mainform">
<div class="innerdiv">
<form class="inline" name="Form1">
<p class="inline">
<label class="inline" for="pensioncompany">Company Pension:</label>
<input class="inline" type="text" name="pensioncompany" size="30" value="<?php echo $employee[$k]["pensioncompany"]; ?>" />
</p>
<input id="submit" type="button" onclick="myFunction()" value="Update Details">
</td></tr></table></td></tr></table>
</form>
addr2+'&town='+town+'&country='+country+'&postcode='+
邮政编码+'&tel1='+tel1+'&work='+work+'&mobile='+mobile+
“&sex=”+sex+”&DOB=“+DOB+”&ninumber=”+ninumber+
“&payrollnumber=”+payrollnumber+”&sortcode=”+sortcode+
“&accountnumber=”+accountnumber+”&ANUALLEAVERIGHTINGE=”+
年度通行权+'&车辆ID='+车辆ID+'&燃料卡ID='+
fuelcardid+'&mobileid='+mobileid+'&pensionindividual='+
养老金个人+养老金公司=+养老金公司
// AJAX code to submit form.
&.ajax({
type: "POST",
url: "submit.php",
data: dataString,
cache: false,
success: function(html) {
alert(html);
}
});
}
return false;
}
问题是表单提交发生在onclick事件得到处理之前。将HTML块更改为
onclick=“myFunction(e);”
然后,将函数更改为从以下内容开始:
function myFunction(e) {
e.preventDefault();
// ... The rest of your code.
}
这将停止表单的提交,并允许您的代码执行。您也不需要在最后返回false来阻止它提交
e
是onclick事件对象。最后返回false。我认为问题只存在于此。删除那一行,看看会发生什么……嗨。我已经删除了那一行,但仍然没有运气。当然&.ajax()
应该是$.ajax()
,对吗?读了更多的文章后,我想知道是不是因为处理程序在表单被附加到DOM之前就被附加了,因为它位于一个div中,该div只在用户输入时被填充,但我不知道如何解决这个问题。另外,您还可以使用一条语句dataString=$(“form[name=Form1]”)生成dataString
。serialize();
提交按钮
元素具有type=“button”
,而不是type=“submit”
,因此它不会提交表单。很容易出错,因为它有id=“submit”
。是的,OP说“当我提交表单时”,我也错过了这一点,这是我在离开几个月后回到客户端编码时一直忘记的事情之一。我把你所有的评论都记在黑板上,并将代码更改为下面。但是,现在地址栏中的所有内容都以字符串结束,控制台中的页面刷新我得到“引用错误:NewSearchFunction未定义”。示例代码中没有名为NewSearchFunction
的JS变量或函数。此外,您可以将数据作为JavaScript对象传入,而不是将其转换为字符串。