[英]return false is not working
我使用动态创建的复选框创建了一种表单。 而且我使用了一个j查询脚本,该脚本将检查天气用户是否选中了至少一个复选框。如果不是,则它将警告错误消息。
HTML代码
print "<form action=\"dpt_multi_delete.php\" method=\"POST\" name=\"searchform\" >\n";
print "<td><input type=\"checkbox\" name=\"dptid$i\" value=\"$row[dpt_id]\"></td>\n";
print "<input type=\"submit\" name=\"submit\" value=\"DELETE SELECTED\" onclick=\"Validate()\"/>\n";
Java脚本是:
function Validate() {
var form = document.forms[0]
var counter=0;
for (i = 0; i < form.elements.length ; i++) {
if (form.elements[i].type == "checkbox"){
if(form.elements[i].checked == true){
counter++
}
}
}
if (counter == 0){
alert("You have not selected an item to delete");
return false;
}
else{
alert("Are you sure you want to delete "+counter+" records");
}
}
问题1:我面临的问题是,如果未选中用户任何复选框,那么他将收到错误警报。 单击确定或取消后,它将重定向到dpt_multi_delete.php页面。 甚至我在警报后使用“ return false”,但无法正常工作。
问题2:如果用户选中了多个复选框,那么我将警告该警告,然后,如果用户单击“确定”,它将删除该记录。 但是在取消该警报消息后,删除记录就是这样。
对此的称呼是什么。 我哪里错了?
如果你打算从一个事件处理函数返回false,那么你需要从事件做处理程序本身,而不仅仅是它调用另一个函数。
您的onclick函数没有return语句。 它调用Validate
,然后对函数返回的值不执行任何操作。
onclick="return Validate();"
约定保留以大写字母开头的变量名称作为构造函数。 调用函数validate
而不是Validate
。
通常最好在提交表单时而不是单击特定的提交按钮时处理这种测试。
现代JavaScript不使用onclick
/ onsubmit
/ etc属性。 我们改用addEventListener
。
function validate(event) {
// Your logic
if (someCondition) {
// Stop
event.preventDefault();
}
}
document.querySelector("form").addEventListener('submit', validate);
试试这个代码:
将班级添加到复选框
print "<td><input type=\"checkbox\" class="mycheckbox" name=\"dptid$i\" value=\"$row[dpt_id]\"></td>\n";
jQuery函数:
function Validate() {
var counter=0;
$( ".mycheckbox" ).each(function() {
if($(this).is(':checked'))
{
counter++
}
});
if (counter == 0)
{
alert("You have not selected an item to delete");
return false;
}
else
{
alert("Are you sure you want to delete "+counter+" records");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.