【问题标题】:java script Onclick and submit not working togetherjavascript Onclick和提交不能一起工作
【发布时间】:2011-12-07 03:35:51
【问题描述】:
<button type="submit" id="start-break" name="start" type="button" class="actv-btn-dft1 blbg" onClick="showhide('start-break', 'stop-break');return false;"  title="Start Break">Start Break</button> 
<button type="submit" id="stop-break" type="button" class="actv-btn-dft1 orbg" onClick="showhide('stop-break', 'start-break');return false;"  style="display:none"  title="Stop Break">Stop Break</button>

我正在使用切换按钮之类的东西,单击开始会使可见停止,然后单击停止开始按钮可见。

我正在使用 showhide('start-break', 'stop-break') javascript 函数,如下所述

function showhide(hideid,showid)
{
 document.getElementById(showid).style.display='block';
document.getElementById(hideid).style.display='none';
}

我想知道为什么我无法在控制器中获取 start 或 stop 的值。

-> 如果我在 onclick 中删除返回 false,我会提交它,但 UI 会受到干扰(单击 str 时按钮不会保持在停止位置)

提前致谢!

【问题讨论】:

  • 代码看起来不错。您是否在控制台上收到任何 javascript 错误?
  • “控制器中的启动或停止值”是什么意思?

标签: javascript javascript-events


【解决方案1】:

return false; 阻止了提交。当表单提交时,页面当然会随着表单提交请求的响应而刷新。

只是不要使用 JS 来显示/隐藏按钮。为此使用服务器端语言(基于您的个人资料和您使用“J2EE”的编辑历史,因此您熟悉 JSP):

<c:if test="${empty param.start}">
   <button type="submit" name="start">Start</button>
</c:if>
<c:if test="${not empty param.start}">
   <button type="submit" name="stop">Stop</button>
</c:if>

另一种方法是使用 Ajax 提交表单。但这是一个完全不同的故事。

【讨论】:

  • 感谢 balusC!您的想法很棒..感谢您理解问题。我用 代替。
  • 不客气。由于您是新来的,请不要忘记在答案最有助于解决问题时将其标记为已接受。另见meta.stackexchange.com/questions/5234/…
【解决方案2】:

您是否尝试将return false; 放在showHide() 函数的末尾而不是元素的onclick 属性中?如果我没记错的话,你不应该在一个内联属性中有多个 javascript 语句。

【讨论】:

  • 实际上可以内联多个语句
  • 更好的是:将 JS 从 HTML 元素中提取出来,并在 &lt;script&gt; 标签之间附加事件监听器。在这里,我什至为你做了:jsfiddle.net/aqvdQ
【解决方案3】:

如果什么都没发生,是不是你的函数声明超出了窗口范围?你的代码在http://jsfiddle.net/TZMkH/1/中对我来说很好

【讨论】:

    猜你喜欢
    • 2013-10-23
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 2014-10-06
    • 2023-03-22
    相关资源
    最近更新 更多