2011-02-03 91 views
1

(我已经用按钮标签更改了输入标签。) 这可能是一个愚蠢的问题,但是在这里。我有一个这样的输入按钮: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); 
} 

如果我把用于isntance像电话报警:

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

按钮的作品,但它dosent当我尝试调用JavaScript函数。

+0

在Firebug控制台中查看任何JS错误,如果它不工作,应该对* why *有一些反馈。 – 2011-02-03 14:39:49

+1

您是否尝试在onclick属性中放弃“javascript:”?没有必要指定你在那里放置一个脚本元素。 – 2011-02-03 14:42:18

+1

输入是提交类型。没有表单,Firefox不知道要提交什么。 – Victor 2011-02-03 14:42:48

回答

2

<input type="submit" />用于提交表单数据。如果没有<form> firefox不知道表单应该在哪里或如何提交,所以它不提交。

如果您想使用没有窗体的按钮,可以使用<button>标签。

1

尝试:

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

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

0

你可以在这个输入元素周围添加一些关于你的代码的上下文吗?它是否在一种形式(听起来不像)? “提交”输入类型需要是一种形式...你可以改为一个按钮输入元素吗?

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

你的问题应该是对原始问题的评论,而不是你答案的一部分。 – 2011-02-03 14:44:19

0

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

0

如果您的类型为“submit”,浏览器将尝试将数据发布到包含<表单>元素的“action”属性。您可以通过添加“return false;”来禁用此功能到你的onclick处理程序。正如其他人所说,在这种情况下,“按钮”是更合适的类型。以下裸机示例适用于我:

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

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

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> 
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();"