【问题标题】:Javascript - stop proceeding after alert messageJavascript - 收到警报消息后停止继续
【发布时间】:2012-07-24 17:26:48
【问题描述】:

在我的 Web 应用程序的登录页面中,我有一个复选框。输入用户名/密码后,如果用户没有勾选复选框(T&C),他不应该被带到主页,并且会显示警告错误消息。

我已经尝试了以下代码。但它不起作用。即,显示警告消息。但是用户被带到下一页(主页)。我尝试返回 false,但没有运气。

谁能告诉我如何解决这个问题?

function doSubmit() {
    var checkbox = document.getElementById("terms");
    if (!checkbox.checked) {
        alert("error message here!");
        return;
    }
    document.getElementById("f").submit();
}​  

我从

调用 doSubmit
<input id="proceed" onclick="doSubmit()" type="submit" value="${fn:escapeXml(submit_label)}" />

【问题讨论】:

  • 你怎么调用 doSubmit()
  • @user1351052 doSubmit 是否在提交事件、按钮点击事件、其他任意调用中调用?

标签: javascript spring jsp alert


【解决方案1】:

不要在输入中使用onclick,而是尝试在表单标签中使用以下内容:

onsubmit="return doSubmit()"

js 的作用是:

function doSubmit() {
    var checkbox = document.getElementById("terms");
    if (!checkbox.checked) {
        alert("error message here!");
        return false;
    } 
}

【讨论】:

    【解决方案2】:

    尝试将输入类型更改为 button 而不是 submit,将提交操作委托给 JS 函数:

    <input id="proceed" onclick="doSubmit()" type="button" value="${fn:escapeXml(submit_label)}" />
    

    【讨论】:

    • 对于选中(正面场景)和未选中(负面场景)复选框,没有显示下一页:(
    • 您是否将id 属性设置为表单的“f”?
    【解决方案3】:

    在提交表单之前,您应该检查checkbox 的状态,如果没有检查,请阻止提交。在 jQuery 中,下面的代码可以解决问题。

    $(form).submit(function(e){
        if($(this).find("#terms").is('checked')){
            e.preventDefault();
            alert('error messge goes here');
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      • 2022-09-24
      • 2018-06-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多