【问题标题】:<button> always redirecting after clicked<button> 总是在点击后重定向
【发布时间】:2013-10-08 23:39:24
【问题描述】:

我的按钮:

<button onclick="return DeleteImg(this,event);">Delete</button>

我的代码:

function DeleteImg(Obj,e) {
    if (!confirm('Are you sure you want to delete the file?')) return false;
    var n = new PostData('/Pictures/Delete/', 'Type=Home&Name=' + window.LargeImage.src.split('/')[5]);
    n.onResponse = function (t) {
        var n = JSON.parse(t);
        if (n.Success) ShowMsg('Image Deleted, it will be gone when you refresh.');
        else ShowMsg(n.Msg);
    };
    e.preventDefault();
    return false;
}

发布数据功能:

function PostData(e, t) {
    var n = false;
    this.onResponse = function (e) {};
    if (window.XMLHttpRequest) n = new XMLHttpRequest;
    else if (window.ActiveXObject) n = new ActiveXObject('Microsoft.XMLHTTP');
    else {
        this.onResponse(JSON.stringify({
            Success: false,
            Msg: 'Your browser does not support AJAX, please upgrade to Google Chrome, Mozzila Firefox or Internet Explorer 10',
            ElementId: undefined
        }))
    }
    n.open('POST', e, true);
    n.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    var r = this;
    n.onreadystatechange = function () {
        if (n.readyState == 4 && n.status == 200) r.onResponse(n.responseText)
    };
    n.send(t)
}

每当单击按钮并且用户单击确认框后,页面将重定向到另一个页面(不知道是什么,我的 FCP 只是将其重定向到未找到的页面,因此它不存在)并且代码是没跑。

我能做些什么来解决这个问题?

【问题讨论】:

  • 我怀疑 PostData 有问题。你能把函数贴在这里吗?
  • 现在添加了,虽然我以前用过很多次,效果很好。

标签: javascript html button


【解决方案1】:

默认情况下,按钮是 submit 按钮,它会导致您的页面重定向。您可以通过设置按钮类型来修复。

<button type="button" onclick="return DeleteImg(this,event);">Delete</button>

【讨论】:

  • e.preventDefault; return false 不是应该取消这种行为吗?
  • 添加了这个,仍然重定向。
  • 很可能是您的其他函数调用之一中的问题。 PostDataShowMsg
  • ShowMsg 只是设置一个 div 的文本,PostData 只是发出一个 AJAX 请求并返回结果。另外我在另一个页面上使用了这两个函数,唯一的区别是 DeleteImg 函数被调整为隐藏图像并且它在那里工作正常。
  • 那么另一种可能性是您在 html 中重叠表单。无论如何,如果设置类型不起作用,我确定问题存在于您未在此处显示的代码中。
猜你喜欢
  • 1970-01-01
  • 2021-02-04
  • 1970-01-01
  • 2013-08-18
  • 2011-03-15
  • 1970-01-01
  • 2013-07-01
  • 2013-08-15
  • 2021-05-03
相关资源
最近更新 更多