Nay*_*ana 0 javascript php jquery
我创建了一个动态创建复选框的表单.我已经使用了一个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";
Run Code Online (Sandbox Code Playgroud)
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");
}
}
Run Code Online (Sandbox Code Playgroud)
问题1:我面临的问题是,如果没有选择任何复选框用户,那么他将收到错误警报.单击确定或取消后,它将重定向到dpt_multi_delete.php页面.即使我在警报后使用"return false"但它不起作用.
问题2:如果用户选择了多个复选框,那么我将提醒警告,然后如果用户单击确定,则它将删除该记录.但取消该警报信息后,所有这些都是删除记录.
对此的称呼是什么?我哪里错了?
如果你打算从一个事件处理函数返回false,那么你需要从做它的事件处理程序本身,而不仅仅是它调用另一个函数.
你的onclick函数没有return语句.它调用Validate,然后对函数返回的值不执行任何操作.
onclick="return Validate();"
Run Code Online (Sandbox Code Playgroud)
Convention保留以构造函数的大写字母开头的变量名.打电话给你的功能validate,不是Validate.
在提交表单时,而不是在单击特定的提交按钮时,通常更好的方法是处理此类测试.
现代JavaScript不使用onclick/ onsubmit/ etc属性.我们addEventListener改用.
function validate(event) {
// Your logic
if (someCondition) {
// Stop
event.preventDefault();
}
}
document.querySelector("form").addEventListener('submit', validate);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
618 次 |
| 最近记录: |