Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以/如何在中使用带有if语句的OnClick吗?_Javascript_Jquery_Button_Onclick_Confirm - Fatal编程技术网

Javascript 我可以/如何在中使用带有if语句的OnClick吗?

Javascript 我可以/如何在中使用带有if语句的OnClick吗?,javascript,jquery,button,onclick,confirm,Javascript,Jquery,Button,Onclick,Confirm,我试图创建一个按钮,当按下该按钮时,删除一个数据库条目,当我单击它时,我想要一条消息说“你确定要删除这个吗”,然后如果我单击“取消”,消息就会消失,什么也没有发生,如果我单击“确定”,删除会运行,但它会重新加载页面,我认为这需要一个jquery(这就是我希望它出现的情况)if语句基本上说如果单击了ok,那么运行默认值,并在代码运行后刷新页面 到目前为止我有 <button name="del" type="submit" value="1" onclick="return confirm(

我试图创建一个按钮,当按下该按钮时,删除一个数据库条目,当我单击它时,我想要一条消息说“你确定要删除这个吗”,然后如果我单击“取消”,消息就会消失,什么也没有发生,如果我单击“确定”,删除会运行,但它会重新加载页面,我认为这需要一个jquery(这就是我希望它出现的情况)if语句基本上说如果单击了ok,那么运行默认值,并在代码运行后刷新页面

到目前为止我有

<button name="del" type="submit" value="1" onclick="return confirm('Are you sure you want to delete this?') "> delete</button>
删除
请告诉我,如果我在这方面走错了路,如果我没有,请帮助我如何编写if(事实上,我已经搜索了这个,信息还不够完整,我无法理解,我是一名PHP开发人员,我一生中从未使用过任何Javascript,但我想开始)


编辑:如果这是一个缓存问题,我该如何解决?

我认为您的问题更多的是一个缓存问题,在表单提交后重新加载页面是没有效率的,因为您正在执行到服务器的不必要的往返,但是如果这是您想要的,这里有一种方法:

备注:删除提交按钮上的
onclick
属性

document.addEventListener('DOMContentLoaded', function () {
    initDeletionPage(document.getElementById('the-id-of-the-form-to-target'));
});

function initDeletionPage(deletionForm) {
    refreshPageIfNeeded();
    deletionForm.addEventListener('submit', onSubmit);

    function refreshPageIfNeeded() {
        if (sessionStorage.getItem('pageRefreshNeeded')) {
            sessionStorage.removeItem('pageRefreshNeeded');
            location.reload();
        }
    }

    function onSubmit(e) {
        if (!confirmDeletion()) e.preventDefault();
        else indicatePageRefreshNeededAfterSubmission();
    }

    function confirmDeletion() {
        return confirm('Are you sure you want to delete this?');
    }

    function indicatePageRefreshNeededAfterSubmission() {
        sessionStorage.setItem('pageRefreshNeeded', true);
    }
}

抱歉,我要求了一个更Jquery的方法

好的


你的确认书很好。 但是,当您按下“Ok”时,基本上执行了2个请求

我会用两种方法中的一种:

一,。 回发到同一页面,并在生成页面数据之前使用PHP处理$\u POST数据。伪代码:

if($_POST['userid']!= null)
    deleteUser($_POST['userid']);
getUsers();
二,。 使用Javascript向另一个页面发出Ajax请求,该页面将删除您的用户。然后在“完成”事件中,让JS重新加载您当前所在的页面

我认为选项2最好。它也会让你更多地接触JavaScript

$.ajax({
  url: "deleteuser.php?userid=1",
}).done(function() {
  location.reload();
});
或$.post的等效值 您甚至不需要重新加载页面。您可以使用Javascript删除包含您刚刚删除的用户的行。
这当然使用jQuery,但jQuery只是Javascript的包装器,它是一个提交按钮,因此页面应该提交……为什么需要刷新页面?PS Java!==JavaScriptIt确实提交,我希望它刷新,因为这是我希望它工作的方式。基本上,它显示用户,如果你点击删除按钮,它会删除他们页面需要刷新,以便您可以看到用户不再存在。您可以发布执行删除操作的位吗?是某个javascript删除html元素,还是调用某个ajax或其他什么?这将影响“在代码运行后刷新页面”的方式当表单提交时,为什么页面加载时用户仍然在那里?你真的在使用Ajax调用吗?这里有点奇怪。对不起,我问了一个更Jquery的方法:/a这是否允许提交确认(你确定要废话吗?)只有一个按钮?因为我有另一个按钮用于编辑,我不想让那个按钮要求确认。@seanyt123您的表单上有多个提交按钮?不,它在不同的表单上,这是针对特定表单的吗?在Jquery中有什么方法吗?@seanyt123我更新了代码,向您展示了如何针对特定表单。还有在有意义的地方使用jQuery…这里没有太多优势。
$.ajax({
  url: "deleteuser.php?userid=1",
}).done(function() {
  location.reload();
});