Firefox中的输入按钮不起作用

时间:2011-02-03 14:38:18

标签: javascript html firefox

(我用按钮标签更改了输入标签。) 这可能是一个愚蠢的问题,但这里有。我有一个这样的输入按钮:

<button type="submit"
       id="choice"
       value="Escolher" 
       onClick="javascript:makeChanges()">

它在IE中运行良好,但在Firefox中它只是没有做任何事情;没有错误,也没有任何行为。

我的“makeChanges()”函数执行以下操作:

var selObj = document.getElementById('opiniao');    
var selIndex = selObj.selectedIndex;
var str = selObj.options[selIndex].text +'&random='+(new Date()).getTime();
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","writeSettings2.php?text="+str,true);
xmlhttp.send(null);
history.go(0);
}

如果我在电话会议中提出了警告,例如:

<button type="submit"
           id="choice"
           value="Escolher" 
           onClick="alert('Hello')">

按钮有效,但是当我尝试调用javascript函数时,它会有效。

7 个答案:

答案 0 :(得分:2)

<input type="submit" />用于提交表单数据。没有<form> firefox不知道应该在何处或如何提交表单,因此它不会提交。

如果您想使用没有表单的按钮,可以使用<button>标记。

答案 1 :(得分:1)

尝试:

<input type="button" id="choice" value="Escolher" onClick="makeChanges()" />

你的javascript是什么?也许有一个错误?

答案 2 :(得分:0)

您可以在此输入元素周围添加一些关于代码的上下文吗?它是一种形式(听起来不像)? “提交”输入类型需要采用某种形式......您只需将其更改为按钮输入元素吗?

<input type="button" id="choice" value="Escolher" onClick="javascript:makeChanges()">

答案 3 :(得分:0)

输入的类型为submit。表示提交表格。没有表单,Firefox不知道要提交什么。

答案 4 :(得分:0)

如果您的类型为“提交”,则浏览器会尝试将数据发布到封闭的&lt; form&gt;元素的“动作”属性。你可以通过添加“return false”来禁用它。你的onclick处理程序。正如其他人所说,“按钮”是在这种情况下使用的更合适的类型。以下简单的例子对我有用:

&lt;input type="button" onClick="javascript:alert('hello');" /&gt;

您是否在Firefox中安装了NoScript?通常,不允许file://执行JavaScript代码。

答案 5 :(得分:0)

我刚试过你的代码,它在Firefox 3中运行正常。在下面的HTML上。检查您的功能是否已定义。或者也许是你的Firefox版本?

<html>
<head>

<script type="text/javascript">

function makeChanges(){
    alert('hi');
}

</script>

</head>
<body>

<input type="submit"
       id="choice"
       value="Escolher"
       onClick="javascript:makeChanges()">

</body>
</html>

答案 6 :(得分:0)

确实这对Firefox不起作用(但适用于IE,Chrome):

input type="button" value="Show Results" onClick="javascript:show()"

解决方案只是将javascript代码放在onClick中,例如:

input type="button" value="Show Results" onclick="document.getElementById('dsp').value=1;sertificatesStatsForm.submit();"