0

我有一个<button>withonclick功能。我需要像这样将参数传递给函数:

function go(id){
    dosomething();
}

但我不知道为什么,在 Firefox 上按时<button>提交表单。

event所以我需要防止默认行为,但如果不将参数传递给函数,我不知道该怎么做。而且我不知道如何传递参数和事件参数以一起运行。

return false;

不要对我工作。

我有这个:

<button id="qtd" class="btn btnqtdmais inline qtdinputbtn" onclick="soma(<?=$item['dados']['id']?>)">+</button>

和功能:

function soma(id){
    dosomething();
}
4

4 回答 4

4

事件参数应该总是最后的

 function myfunction (id, event) {
    event.preventDefault();
    dosomething();
    return false;
 }

像这样调用函数

 button.onclick = function(e) { myfunction(id, e) };

或者

 <button id="qtd" class="btn btnqtdmais inline qtdinputbtn" onclick="soma(<?=$item['dados']['id']?>, event)">+</button>

注意:我在 Firefox 上都尝试了成功。

firefox 事件行为非常奇怪,您必须显式传递 event 参数,否则它将无法工作,与 chrome 不同,我敢说 MS 这将在没有参数的情况下工作

function myfunction (id) {
  event.preventDefault();
  dosomething();
  return false;
 }

编辑: 这也有效

 function soma (event, id) {
    event.preventDefault();
    dosomething();
    return false;
 }
 <button id="qtd" class="btn btnqtdmais inline qtdinputbtn" onclick="soma(event, <?=$item['dados']['id']?>)">+</button>
于 2013-07-04T11:43:29.747 回答
1

您可以尝试使用一些 javascript 来抑制按钮的默认操作

if (form.addEventListener) {
  return form.addEventListener('submit', function(e) {
    return e.preventDefault();
  }, true);
}
于 2013-07-04T11:45:17.660 回答
1

html代码:

 <button type="button" id="btn1" onclick="return handleButton(event,'btnSearch');"/>

JavaScript 代码:

function handleButton(event, searchButtonId) {
    event = event || window.event;
    if (event.keyCode == 13) {
       alert("Enter key pressed");
    }
}

您必须将事件参数作为第一个参数传递给函数。希望它能解决你的问题。

于 2013-07-04T11:49:02.787 回答
1

尝试onclick="this.preventDefault(); go(id);"

于 2013-07-04T11:42:09.063 回答