【问题标题】:Getting a form to submit from JavaScript?获取从 JavaScript 提交的表单?
【发布时间】:2011-08-18 11:45:40
【问题描述】:

我在 JSP 中有一个表单如下:

<form action = "<c:url value = '/displayVisualisation' />" 
    title = "${item.visDescription}" 
    method = "post" onClick = "return confirmRequest('Do you want to change  to
        another visualisation type?');">                       
    <input class = "text" type = "text" value = "${item.visTypeName}"> 

</form>  

其中调用一个Javascript方法如下:

function confirmRequest(questionText) {
    var confirmRequest = confirm(questionText);   
    if (confirmRequest) {
        return true;
    }

    else {
        return false;
    }                    
}

要求用户回答所提出的问题。但是,确认提示出现但不执行 displayVisualisation 操作!

任何人都可以提出原因或帮助我正确实施吗?

在其他示例中,通过单击图形触发操作,一切正常。

【问题讨论】:

  • 您检查过 Safari、Firefox 或 Chrome 的错误控制台吗?有错误提示吗?
  • 不是您问题的答案,但您的函数可以重写为: function confirmRequest(questionText) { return confirm(questionText); }

标签: javascript html forms jsp event-handling


【解决方案1】:

由于您在 confirmRequest 函数中使用 onclickreturn true; 只是允许执行 clickHandler 链的其余部分。我认为您此时还需要明确提交表单,在真实情况下。

这是一种方法,只使用 javascript:

function confirmRequest(questionText) {
  var confirmRequest = confirm(questionText);   
  if (confirmRequest) {
     document.forms[0].submit();
     return true;
  }
  else {
      return false;
  }
}

【讨论】:

  • onsubmit 在 FF 和 IE 中均失败。
  • 看到修改后,可以继续使用onclick,但需要显式提交
  • 我已经稍微调整了它,让它可以在作为参数传递的表单上工作。但它似乎工作。非常感谢。
  • 是的,这样会更灵活。没问题!
猜你喜欢
  • 1970-01-01
  • 2012-06-12
  • 1970-01-01
  • 2013-09-30
  • 2017-07-06
  • 2020-03-11
  • 1970-01-01
  • 1970-01-01
  • 2017-10-10
相关资源
最近更新 更多