(我用按钮标签更改了输入标签。) 这可能是一个愚蠢的问题,但这里有。我有一个这样的输入按钮:
<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函数时,它会有效。
答案 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处理程序。正如其他人所说,“按钮”是在这种情况下使用的更合适的类型。以下简单的例子对我有用:
<input type="button" onClick="javascript:alert('hello');" />
您是否在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();"